aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/fields.py
diff options
context:
space:
mode:
authorTom Christie2013-11-06 04:24:59 -0800
committerTom Christie2013-11-06 04:24:59 -0800
commit97430c0d9c608728eb7dc135b9aac4d5327b9247 (patch)
treeedf528c29d0b58743e7b3450c06511e5d50de294 /rest_framework/fields.py
parent003b9dda342e1fbb9b482a3103599e62cc458911 (diff)
parent5829eb7a5b0d45fe668d7ce1ad394a7b5966c70d (diff)
downloaddjango-rest-framework-97430c0d9c608728eb7dc135b9aac4d5327b9247.tar.bz2
Merge pull request #1214 from diox/choicefield-typed
Improve handling of 'empty' values for ChoiceField
Diffstat (limited to 'rest_framework/fields.py')
-rw-r--r--rest_framework/fields.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index e23fc001..6c07dbb3 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -497,6 +497,7 @@ class ChoiceField(WritableField):
}
def __init__(self, choices=(), *args, **kwargs):
+ self.empty = kwargs.pop('empty', '')
super(ChoiceField, self).__init__(*args, **kwargs)
self.choices = choices
if not self.required:
@@ -537,9 +538,10 @@ class ChoiceField(WritableField):
return False
def from_native(self, value):
- if value in validators.EMPTY_VALUES:
- return None
- return super(ChoiceField, self).from_native(value)
+ value = super(ChoiceField, self).from_native(value)
+ if value == self.empty or value in validators.EMPTY_VALUES:
+ return self.empty
+ return value
class EmailField(CharField):