From 4bc3c2354a8b7fcdfb2444a8bfb9af211b814f99 Mon Sep 17 00:00:00 2001 From: Matt Bartolome Date: Wed, 18 Feb 2015 08:38:08 -0800 Subject: [PATCH 1/3] fix isoformat error --- rest_framework/fields.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index a5348922a..b7133f1fc 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -910,7 +910,7 @@ class DateField(Field): self.fail('invalid', format=humanized_format) def to_representation(self, value): - if self.format is None: + if self.format or value is None: return value # Applying a `DateField` to a datetime value is almost always From da9daa700270f56323cb9a15da753efc7f833d32 Mon Sep 17 00:00:00 2001 From: Matt Bartolome Date: Wed, 18 Feb 2015 08:39:31 -0800 Subject: [PATCH 2/3] fix KeyError --- rest_framework/fields.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index b7133f1fc..48fed3a49 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -1051,10 +1051,12 @@ class MultipleChoiceField(ChoiceField): ]) def to_representation(self, value): - return set([ - self.choice_strings_to_values[six.text_type(item)] for item in value - ]) - + if value in ('', None): + return value + try: + return self.choice_strings_to_values[six.text_type(value)] + except KeyError: + return value # File types... From 864335d9b35b6c25c16b6893978b289dabfc7256 Mon Sep 17 00:00:00 2001 From: Matt Bartolome Date: Wed, 18 Feb 2015 08:42:19 -0800 Subject: [PATCH 3/3] fix for keyerror with choicefield --- rest_framework/fields.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 48fed3a49..6d021d37c 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -1024,8 +1024,10 @@ class ChoiceField(Field): def to_representation(self, value): if value in ('', None): return value - return self.choice_strings_to_values[six.text_type(value)] - + try: + return self.choice_strings_to_values[six.text_type(value)] + except KeyError: + return value class MultipleChoiceField(ChoiceField): default_error_messages = {