aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rest_framework/fields.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index e9bae0ec..0a199f10 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -536,8 +536,10 @@ class DateField(WritableField):
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:
return value.isoformat()
return value.strftime(self.format)
@@ -603,6 +605,7 @@ class DateTimeField(WritableField):
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)
@@ -653,8 +656,12 @@ class TimeField(WritableField):
raise ValidationError(msg)
def to_native(self, value):
+ if value is None:
+ return None
+
if isinstance(value, datetime.datetime):
value = value.time()
+
if self.format.lower() == ISO_8601:
return value.isoformat()
return value.strftime(self.format)