aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework
diff options
context:
space:
mode:
authorCraig de Stigter2013-03-18 16:05:34 +1300
committerCraig de Stigter2013-03-18 16:05:34 +1300
commit101fa26ebc092a43acbf3f28617eb58be7629b5f (patch)
treef50221bb01a02aa1b744e12a71eaf92dbecc342d /rest_framework
parentd6d5b1d82a4ccc1a2fe29ff18e9ecf7c196a07a5 (diff)
downloaddjango-rest-framework-101fa26ebc092a43acbf3f28617eb58be7629b5f.tar.bz2
use writablefield style for serializer handling of self.default
Diffstat (limited to 'rest_framework')
-rw-r--r--rest_framework/serializers.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py
index cc6d60da..a81cbc29 100644
--- a/rest_framework/serializers.py
+++ b/rest_framework/serializers.py
@@ -358,11 +358,13 @@ class BaseSerializer(WritableField):
try:
value = data[field_name]
except KeyError:
- if self.required:
- raise ValidationError(self.error_messages['required'])
- if self.default is None:
+ if self.default is not None and not self.partial:
+ # Note: partial updates shouldn't set defaults
+ value = copy.deepcopy(self.default)
+ else:
+ if self.required:
+ raise ValidationError(self.error_messages['required'])
return
- value = copy.deepcopy(self.default)
# Set the serializer object if it exists
obj = getattr(self.parent.object, field_name) if self.parent.object else None