8000 Merge pull request #708 from kevinastone/master · corentinl/django-rest-framework@f5a8f17 · GitHub
[go: up one dir, main page]

Skip to content

Commit f5a8f17

Browse files
committed
Merge pull request encode#708 from kevinastone/master
Fixed DateField with Empty Values (Fixes encode#707)
2 parents 751064a + 2f8d8b4 commit f5a8f17

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

rest_framework/fields.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,8 @@ def from_native(self, value):
534534
raise ValidationError(msg)
535535

536536
def to_native(self, value):
537+
if value is None:
538+
return None
537539
if isinstance(value, datetime.datetime):
538540
value = value.date()
539541
if self.format.lower() == ISO_8601:
@@ -599,6 +601,8 @@ def from_native(self, value):
599601
raise ValidationError(msg)
600602

601603
def to_native(self, value):
604+
if value is None:
605+
return None
602606
if self.format.lower() == ISO_8601:
603607
return value.isoformat()
604608
return value.strftime(self.format)

rest_framework/tests/fields.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,13 @@ def test_to_native_custom_format(self):
171171

172172
self.assertEqual('1984 - 07.31', result_1)
173173

174+
def test_to_native_none(self):
175+
"""
176+
Make sure from_native() returns None on None param.
177+
"""
178+
f = serializers.DateField(required=False)
179+
self.assertEqual(None, f.to_native(None))
180+
174181

175182
class DateTimeFieldTest(TestCase):
176183
"""
@@ -303,6 +310,13 @@ def test_to_native_custom_format(self):
303310
self.assertEqual('1984 - 04:31', result_3)
304311
self.assertEqual('1984 - 04:31', result_4)
305312

313+
def test_to_native_none(self):
314+
"""
315+
Make sure from_native() returns None on None param.
316+
"""
317+
f = serializers.DateTimeField(required=False)
318+
self.assertEqual(None, f.to_native(None))
319+
306320

307321
class TimeFieldTest(TestCase):
308322
"""

0 commit comments

Comments
 (0)
0