diff options
| author | Tom Christie | 2013-03-07 01:01:07 -0800 |
|---|---|---|
| committer | Tom Christie | 2013-03-07 01:01:07 -0800 |
| commit | f5a8f172a32f38fcefa1086fd1e031f5a686f8a0 (patch) | |
| tree | cec36550c953ed8ec517ff22fee9162f1b9e63cf /rest_framework | |
| parent | 751064a6fda8adeab409d63d06dc4a39be1c159f (diff) | |
| parent | 2f8d8b499ec50bd3832d1a25fd12b671341d02e9 (diff) | |
| download | django-rest-framework-f5a8f172a32f38fcefa1086fd1e031f5a686f8a0.tar.bz2 | |
Merge pull request #708 from kevinastone/master
Fixed DateField with Empty Values (Fixes #707)
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/fields.py | 4 | ||||
| -rw-r--r-- | rest_framework/tests/fields.py | 14 |
2 files changed, 18 insertions, 0 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py index fe555ee5..e9bae0ec 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -534,6 +534,8 @@ class DateField(WritableField): raise ValidationError(msg) def to_native(self, value): + if value is None: + return None if isinstance(value, datetime.datetime): value = value.date() if self.format.lower() == ISO_8601: @@ -599,6 +601,8 @@ class DateTimeField(WritableField): raise ValidationError(msg) def to_native(self, value): + if value is None: + return None if self.format.lower() == ISO_8601: return value.isoformat() return value.strftime(self.format) diff --git a/rest_framework/tests/fields.py b/rest_framework/tests/fields.py index 28f18ed8..fd6de779 100644 --- a/rest_framework/tests/fields.py +++ b/rest_framework/tests/fields.py @@ -171,6 +171,13 @@ class DateFieldTest(TestCase): self.assertEqual('1984 - 07.31', result_1) + def test_to_native_none(self): + """ + Make sure from_native() returns None on None param. + """ + f = serializers.DateField(required=False) + self.assertEqual(None, f.to_native(None)) + class DateTimeFieldTest(TestCase): """ @@ -303,6 +310,13 @@ class DateTimeFieldTest(TestCase): self.assertEqual('1984 - 04:31', result_3) self.assertEqual('1984 - 04:31', result_4) + def test_to_native_none(self): + """ + Make sure from_native() returns None on None param. + """ + f = serializers.DateTimeField(required=False) + self.assertEqual(None, f.to_native(None)) + class TimeFieldTest(TestCase): """ |
