diff options
| author | Tom Christie | 2014-01-12 06:52:40 -0800 |
|---|---|---|
| committer | Tom Christie | 2014-01-12 06:52:40 -0800 |
| commit | 07cff7b37f23489579ad9effeea9365725b7cc82 (patch) | |
| tree | 219a03e808f239c6ca7d5e270fb278b78788a0ad /rest_framework/fields.py | |
| parent | 52686420f4bf866064ee88a15903665f14289394 (diff) | |
| parent | cd9a4194ea4f4dc0e43a34485cd8a27eba44a39a (diff) | |
| download | django-rest-framework-07cff7b37f23489579ad9effeea9365725b7cc82.tar.bz2 | |
Merge pull request #1348 from yprez/none-to-empty-string_2.4
Coerce None to empty string
Diffstat (limited to 'rest_framework/fields.py')
| -rw-r--r-- | rest_framework/fields.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 5ee75235..16485b41 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -443,8 +443,9 @@ class CharField(WritableField): type_label = 'string' form_field_class = forms.CharField - def __init__(self, max_length=None, min_length=None, *args, **kwargs): + def __init__(self, max_length=None, min_length=None, allow_none=False, *args, **kwargs): self.max_length, self.min_length = max_length, min_length + self.allow_none = allow_none super(CharField, self).__init__(*args, **kwargs) if min_length is not None: self.validators.append(validators.MinLengthValidator(min_length)) @@ -452,7 +453,9 @@ class CharField(WritableField): self.validators.append(validators.MaxLengthValidator(max_length)) def from_native(self, value): - if isinstance(value, six.string_types) or value is None: + if value is None and not self.allow_none: + return '' + if isinstance(value, six.string_types): return value return smart_text(value) |
