aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework
diff options
context:
space:
mode:
authorSerhiy Voyt2014-05-06 21:57:25 +0300
committerSerhiy Voyt2014-05-06 21:57:25 +0300
commit1ce1f387b031c368e0ad315964b78f93d6be9a19 (patch)
tree991a779c55246cac36b8331f422bf2ee84df4b05 /rest_framework
parent98cc8210990e3307a89d745acbbc2bcf6c665645 (diff)
downloaddjango-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.py9
-rw-r--r--rest_framework/tests/models.py4
-rw-r--r--rest_framework/tests/test_serializer.py1
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):
"""