diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 8541bc43a..fc917e213 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -1061,6 +1061,9 @@ class DateTimeField(Field): self.fail('invalid', format=humanized_format) def to_representation(self, value): + if not value: + return None + output_format = getattr(self, 'format', api_settings.DATETIME_FORMAT) if output_format is None: diff --git a/tests/test_fields.py b/tests/test_fields.py index 9cb59f7da..7f79050ca 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -960,6 +960,8 @@ class TestDateTimeField(FieldValues): outputs = { datetime.datetime(2001, 1, 1, 13, 00): '2001-01-01T13:00:00', datetime.datetime(2001, 1, 1, 13, 00, tzinfo=timezone.UTC()): '2001-01-01T13:00:00Z' + None: None, + '': None, } field = serializers.DateTimeField(default_timezone=timezone.UTC())