diff options
| -rw-r--r-- | rest_framework/fields.py | 9 | ||||
| -rw-r--r-- | rest_framework/tests/models.py | 4 | ||||
| -rw-r--r-- | rest_framework/tests/test_serializer.py | 1 | 
3 files changed, 12 insertions, 2 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 8cdc5551..7858d951 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -469,8 +469,15 @@ 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 isinstance(value, six.string_types):              return value + +        if value is None: +            if self.default: +                return self.default +            else: +                value +          return smart_text(value) diff --git a/rest_framework/tests/models.py b/rest_framework/tests/models.py index e171d3bd..fba3f8f7 100644 --- a/rest_framework/tests/models.py +++ b/rest_framework/tests/models.py @@ -105,6 +105,7 @@ class Album(RESTFrameworkModel):      title = models.CharField(max_length=100, unique=True)      ref = models.CharField(max_length=10, unique=True, null=True, blank=True) +  class Photo(RESTFrameworkModel):      description = models.TextField()      album = models.ForeignKey(Album) @@ -112,7 +113,8 @@ class Photo(RESTFrameworkModel):  # Model for issue #324  class BlankFieldModel(RESTFrameworkModel): -    title = models.CharField(max_length=100, blank=True, null=False) +    title = models.CharField(max_length=100, blank=True, null=False, +                             default="title")  # Model for issue #380 diff --git a/rest_framework/tests/test_serializer.py b/rest_framework/tests/test_serializer.py index d770c637..82e1a89c 100644 --- a/rest_framework/tests/test_serializer.py +++ b/rest_framework/tests/test_serializer.py @@ -1238,6 +1238,7 @@ class BlankFieldTests(TestCase):          self.assertEqual(serializer.is_valid(), True)          serializer.save()          self.assertTrue(serializer.object.pk is not None) +        self.assertEqual(serializer.object.title, 'title')      def test_create_not_blank_field(self):          """  | 
