Fixed #3172: Model.validate() no longer raises TypeErrors on empty Date*Fields. Thanks, floguy@gmail.com.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4592 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
b7fa37f9b2
commit
6bd07383c0
|
@ -443,6 +443,8 @@ class DateField(Field):
|
||||||
Field.__init__(self, verbose_name, name, **kwargs)
|
Field.__init__(self, verbose_name, name, **kwargs)
|
||||||
|
|
||||||
def to_python(self, value):
|
def to_python(self, value):
|
||||||
|
if value is None:
|
||||||
|
return value
|
||||||
if isinstance(value, datetime.datetime):
|
if isinstance(value, datetime.datetime):
|
||||||
return value.date()
|
return value.date()
|
||||||
if isinstance(value, datetime.date):
|
if isinstance(value, datetime.date):
|
||||||
|
@ -505,6 +507,8 @@ class DateField(Field):
|
||||||
|
|
||||||
class DateTimeField(DateField):
|
class DateTimeField(DateField):
|
||||||
def to_python(self, value):
|
def to_python(self, value):
|
||||||
|
if value is None:
|
||||||
|
return value
|
||||||
if isinstance(value, datetime.datetime):
|
if isinstance(value, datetime.datetime):
|
||||||
return value
|
return value
|
||||||
if isinstance(value, datetime.date):
|
if isinstance(value, datetime.date):
|
||||||
|
|
|
@ -146,4 +146,8 @@ u'john@example.com'
|
||||||
>>> p.validate()
|
>>> p.validate()
|
||||||
{'email': ['Enter a valid e-mail address.']}
|
{'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.']}
|
||||||
|
|
||||||
"""}
|
"""}
|
||||||
|
|
Loading…
Reference in New Issue