aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rest_framework/fields.py6
-rw-r--r--rest_framework/tests/models.py4
-rw-r--r--rest_framework/tests/test_serializer.py3
3 files changed, 11 insertions, 2 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index d5c8134b..6caae924 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -474,8 +474,12 @@ 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:
+ return ''
+
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 e688c823..91248ce7 100644
--- a/rest_framework/tests/test_serializer.py
+++ b/rest_framework/tests/test_serializer.py
@@ -1236,6 +1236,9 @@ class BlankFieldTests(TestCase):
def test_create_model_null_field(self):
serializer = self.model_serializer_class(data={'title': None})
self.assertEqual(serializer.is_valid(), True)
+ serializer.save()
+ self.assertIsNot(serializer.object.pk, None)
+ self.assertEqual(serializer.object.title, '')
def test_create_not_blank_field(self):
"""