aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rest_framework/fields.py4
-rw-r--r--rest_framework/tests/fields.py14
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):
"""