diff options
| author | Tom Christie | 2013-11-06 04:24:59 -0800 |
|---|---|---|
| committer | Tom Christie | 2013-11-06 04:24:59 -0800 |
| commit | 97430c0d9c608728eb7dc135b9aac4d5327b9247 (patch) | |
| tree | edf528c29d0b58743e7b3450c06511e5d50de294 /rest_framework/fields.py | |
| parent | 003b9dda342e1fbb9b482a3103599e62cc458911 (diff) | |
| parent | 5829eb7a5b0d45fe668d7ce1ad394a7b5966c70d (diff) | |
| download | django-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.py | 8 |
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): |
