Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed #3172: Model.validate() no longer raises TypeErrors on empty Da…

…te*Fields. Thanks, floguy@gmail.com.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@4592 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 6bd07383c0b06790c209de365e8e17ae125f490b 1 parent b7fa37f
Jacob Kaplan-Moss jacobian authored
4 django/db/models/fields/__init__.py
View
@@ -443,6 +443,8 @@ def __init__(self, verbose_name=None, name=None, auto_now=False, auto_now_add=Fa
Field.__init__(self, verbose_name, name, **kwargs)
def to_python(self, value):
+ if value is None:
+ return value
if isinstance(value, datetime.datetime):
return value.date()
if isinstance(value, datetime.date):
@@ -505,6 +507,8 @@ def formfield(self, **kwargs):
class DateTimeField(DateField):
def to_python(self, value):
+ if value is None:
+ return value
if isinstance(value, datetime.datetime):
return value
if isinstance(value, datetime.date):
4 tests/modeltests/validation/models.py
View
@@ -146,4 +146,8 @@ def __str__(self):
>>> p.validate()
{'email': ['Enter a valid e-mail address.']}
+# Make sure that Date and DateTime return validation errors and don't raise Python errors.
+>>> Person(name='John Doe', is_child=True, email='abc@def.com').validate()
+{'favorite_moment': ['This field is required.'], 'birthdate': ['This field is required.']}
+
"""}
Please sign in to comment.
Something went wrong with that request. Please try again.