Commit 75fbfb58 by Tom Christie

Merge pull request #739 from craigds/basic-nested-serialization

tweaks to writable nested serializers
parents ee20cf80 101fa26e
...@@ -129,8 +129,8 @@ class BaseSerializer(WritableField): ...@@ -129,8 +129,8 @@ class BaseSerializer(WritableField):
_dict_class = SortedDictWithMetadata _dict_class = SortedDictWithMetadata
def __init__(self, instance=None, data=None, files=None, def __init__(self, instance=None, data=None, files=None,
context=None, partial=False, many=None, source=None): context=None, partial=False, many=None, **kwargs):
super(BaseSerializer, self).__init__(source=source) super(BaseSerializer, self).__init__(**kwargs)
self.opts = self._options_class(self.Meta) self.opts = self._options_class(self.Meta)
self.parent = None self.parent = None
self.root = None self.root = None
...@@ -358,6 +358,10 @@ class BaseSerializer(WritableField): ...@@ -358,6 +358,10 @@ class BaseSerializer(WritableField):
try: try:
value = data[field_name] value = data[field_name]
except KeyError: except KeyError:
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: if self.required:
raise ValidationError(self.error_messages['required']) raise ValidationError(self.error_messages['required'])
return return
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment