diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 68835bded4..460645796a 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -925,6 +925,9 @@ def to_internal_value(self, value): self.fail('invalid', format=humanized_format) def to_representation(self, value): + if not value: + return None + if self.format is None: return value @@ -938,7 +941,10 @@ def to_representation(self, value): ) if self.format.lower() == ISO_8601: + if (isinstance(value, str)): + value = datetime.datetime.strptime(value, '%Y-%m-%d').date() return value.isoformat() + return value.strftime(self.format) diff --git a/tests/test_fields.py b/tests/test_fields.py index da6bd6ceba..1531fe2acf 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -726,7 +726,10 @@ class TestDateField(FieldValues): datetime.datetime(2001, 1, 1, 12, 00): ['Expected a date but got a datetime.'], } outputs = { - datetime.date(2001, 1, 1): '2001-01-01' + datetime.date(2001, 1, 1): '2001-01-01', + '2001-01-01': '2001-01-01', + None: None, + '': None, } field = serializers.DateField() pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy