From 86cc657ac7c24008ad7cc5291a87fd7b381878d6 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Tue, 14 Jun 2016 12:11:51 +0100 Subject: [PATCH] Pass through strings as-in with DateTimeField --- rest_framework/fields.py | 6 ++---- tests/test_fields.py | 2 ++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 68e4cdf913..5ed6d656c5 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -1073,7 +1073,7 @@ def to_representation(self, value): output_format = getattr(self, 'format', api_settings.DATETIME_FORMAT) - if output_format is None: + if output_format is None or isinstance(value, six.string_types): return value if output_format.lower() == ISO_8601: @@ -1133,7 +1133,7 @@ def to_representation(self, value): output_format = getattr(self, 'format', api_settings.DATE_FORMAT) - if output_format is None: + if output_format is None or isinstance(value, six.string_types): return value # Applying a `DateField` to a datetime value is almost always @@ -1146,8 +1146,6 @@ def to_representation(self, value): ) if output_format.lower() == ISO_8601: - if isinstance(value, six.string_types): - value = datetime.datetime.strptime(value, '%Y-%m-%d').date() return value.isoformat() return value.strftime(output_format) diff --git a/tests/test_fields.py b/tests/test_fields.py index 8b187ecd4e..0dbdcad065 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -993,6 +993,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', + '2001-01-01T00:00:00': '2001-01-01T00:00:00', + six.text_type('2016-01-10T00:00:00'): '2016-01-10T00:00:00', None: None, '': None, } 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