From 5e0b96b03549064b97d8b2a655182f0423bbeb85 Mon Sep 17 00:00:00 2001 From: Anton Martyniuk Date: Sat, 28 Jun 2014 23:11:19 +0200 Subject: [PATCH 1/2] ensure smart_text will be called --- rest_framework/fields.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 6caae9242..7f95c9725 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -474,10 +474,7 @@ class CharField(WritableField): self.validators.append(validators.MaxLengthValidator(max_length)) def from_native(self, value): - if isinstance(value, six.string_types): - return value - - if value is None: + if value in validators.EMPTY_VALUES: return '' return smart_text(value) From 7d9f1b787820ee9fc21c14c9eaef1aae9ae0eb96 Mon Sep 17 00:00:00 2001 From: Anton Martyniuk Date: Sat, 28 Jun 2014 23:46:08 +0200 Subject: [PATCH 2/2] validates ModelField value against field.null state --- rest_framework/fields.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 7f95c9725..8e30e77a3 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -429,6 +429,11 @@ class ModelField(WritableField): "type": self.model_field.get_internal_type() } + def validate(self, value): + super(ModelField, self).validate(value) + if value is None and not self.model_field.null: + raise ValidationError(self.error_messages['invalid']) + ##### Typed Fields #####