diff options
| author | Serhiy Voyt | 2014-05-06 21:57:25 +0300 |
|---|---|---|
| committer | Serhiy Voyt | 2014-05-06 21:57:25 +0300 |
| commit | 1ce1f387b031c368e0ad315964b78f93d6be9a19 (patch) | |
| tree | 991a779c55246cac36b8331f422bf2ee84df4b05 /rest_framework | |
| parent | 98cc8210990e3307a89d745acbbc2bcf6c665645 (diff) | |
| download | django-rest-framework-1ce1f387b031c368e0ad315964b78f93d6be9a19.tar.bz2 | |
Charfied from_native method returns default instead of None. Updated tests.
Diffstat (limited to 'rest_framework')
| -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): """ |
