diff options
Diffstat (limited to 'rest_framework/fields.py')
| -rw-r--r-- | rest_framework/fields.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py index fe555ee5..0a199f10 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -534,8 +534,12 @@ 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: return value.isoformat() return value.strftime(self.format) @@ -599,6 +603,9 @@ 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) @@ -649,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) |
