Commit 53a1205d by Vadim

Fix partial update for the ListSerializer.

parent 3a7bfdfa
...@@ -533,6 +533,10 @@ class ListSerializer(BaseSerializer): ...@@ -533,6 +533,10 @@ class ListSerializer(BaseSerializer):
super(ListSerializer, self).__init__(*args, **kwargs) super(ListSerializer, self).__init__(*args, **kwargs)
self.child.bind(field_name='', parent=self) self.child.bind(field_name='', parent=self)
def bind(self, field_name, parent):
super(ListSerializer, self).bind(field_name, parent)
self.partial = self.parent.partial
def get_initial(self): def get_initial(self):
if hasattr(self, 'initial_data'): if hasattr(self, 'initial_data'):
return self.to_representation(self.initial_data) return self.to_representation(self.initial_data)
...@@ -584,6 +588,9 @@ class ListSerializer(BaseSerializer): ...@@ -584,6 +588,9 @@ class ListSerializer(BaseSerializer):
}) })
if not self.allow_empty and len(data) == 0: if not self.allow_empty and len(data) == 0:
if self.partial:
raise SkipField()
message = self.error_messages['empty'] message = self.error_messages['empty']
raise ValidationError({ raise ValidationError({
api_settings.NON_FIELD_ERRORS_KEY: [message] api_settings.NON_FIELD_ERRORS_KEY: [message]
......
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