From cbea03c85b7edc3b6ff3b589127645402f9107cc Mon Sep 17 00:00:00 2001 From: Ryan Allen Date: Thu, 23 Apr 2015 19:25:22 -0500 Subject: [PATCH] DateField to_representation can handle str and empty values. Fixes #2656, #2687. --- rest_framework/fields.py | 6 ++++++ tests/test_fields.py | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) 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