From d9633c6817e4c4a3085398c8a52293011670ef46 Mon Sep 17 00:00:00 2001 From: Piotr Jakimiak Date: Fri, 5 Sep 2014 11:08:34 +0200 Subject: Fix returning None when allow_none is True in CharField --- rest_framework/fields.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'rest_framework') diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 9d707c9b..5955fa3f 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -475,8 +475,12 @@ class CharField(WritableField): if isinstance(value, six.string_types): return value - if value is None and not self.allow_none: - return '' + if value is None: + if not self.allow_none: + return '' + else: + # return None implicity because smart_text(None) == 'None' + return None return smart_text(value) -- cgit v1.2.3 From 6022b9ddd44fff08435fa2dbe50d165100ed61c1 Mon Sep 17 00:00:00 2001 From: Piotr Jakimiak Date: Fri, 5 Sep 2014 11:56:44 +0200 Subject: Fix comment --- rest_framework/fields.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'rest_framework') diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 5955fa3f..e744b173 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -479,7 +479,8 @@ class CharField(WritableField): if not self.allow_none: return '' else: - # return None implicity because smart_text(None) == 'None' + # return None explicitly because smart_text(None) == 'None' + # see #1834 for details return None return smart_text(value) -- cgit v1.2.3 From c3b841ae449c66102be7305416eca8acb22c8c42 Mon Sep 17 00:00:00 2001 From: Piotr Jakimiak Date: Fri, 5 Sep 2014 14:08:11 +0200 Subject: Use Serializer instead of ModelSerializer --- rest_framework/fields.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'rest_framework') diff --git a/rest_framework/fields.py b/rest_framework/fields.py index e744b173..8e15345d 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -479,8 +479,7 @@ class CharField(WritableField): if not self.allow_none: return '' else: - # return None explicitly because smart_text(None) == 'None' - # see #1834 for details + # Return None explicitly because smart_text(None) == 'None'. See #1834 for details return None return smart_text(value) -- cgit v1.2.3