aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/fields.py
diff options
context:
space:
mode:
authorAnton Shutik2014-02-27 18:34:36 +0300
committerAnton Shutik2014-02-27 18:34:36 +0300
commit1addd09e2b0e26507aada864123f610ead62d8da (patch)
treefd7fbeea4220d752b9811bbf5c5c0714a5716735 /rest_framework/fields.py
parent6e92e415aa7dd6871ef7d6500a85cacebde8dca2 (diff)
downloaddjango-rest-framework-1addd09e2b0e26507aada864123f610ead62d8da.tar.bz2
RelatedField default value handling fixed
Diffstat (limited to 'rest_framework/fields.py')
-rw-r--r--rest_framework/fields.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index 05daaab7..68b95682 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -301,6 +301,11 @@ class WritableField(Field):
result.validators = self.validators[:]
return result
+ def get_default_value(self):
+ if is_simple_callable(self.default):
+ return self.default()
+ return self.default
+
def validate(self, value):
if value in validators.EMPTY_VALUES and self.required:
raise ValidationError(self.error_messages['required'])
@@ -349,10 +354,7 @@ class WritableField(Field):
except KeyError:
if self.default is not None and not self.partial:
# Note: partial updates shouldn't set defaults
- if is_simple_callable(self.default):
- native = self.default()
- else:
- native = self.default
+ native = self.get_default_value()
else:
if self.required:
raise ValidationError(self.error_messages['required'])