mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-02 20:54:42 +03:00
Moved get component from object after test source is star
This commit is contained in:
parent
19c03f4a60
commit
c3aa10e589
|
@ -438,25 +438,26 @@ class BaseSerializer(WritableField):
|
||||||
raise ValidationError(self.error_messages['required'])
|
raise ValidationError(self.error_messages['required'])
|
||||||
return
|
return
|
||||||
|
|
||||||
# Set the serializer object if it exists
|
|
||||||
obj = get_component(self.parent.object, self.source or field_name) if self.parent.object else None
|
|
||||||
|
|
||||||
# If we have a model manager or similar object then we need
|
|
||||||
# to iterate through each instance.
|
|
||||||
if (self.many and
|
|
||||||
not hasattr(obj, '__iter__') and
|
|
||||||
is_simple_callable(getattr(obj, 'all', None))):
|
|
||||||
obj = obj.all()
|
|
||||||
|
|
||||||
if self.source == '*':
|
|
||||||
if value:
|
|
||||||
reverted_data = self.restore_fields(value, {})
|
|
||||||
if not self._errors:
|
|
||||||
into.update(reverted_data)
|
|
||||||
else:
|
else:
|
||||||
if value in (None, ''):
|
if value in (None, ''):
|
||||||
into[(self.source or field_name)] = None
|
into[(self.source or field_name)] = None
|
||||||
else:
|
else:
|
||||||
|
# Set the serializer object if it exists
|
||||||
|
obj = get_component(self.parent.object, self.source or field_name) if self.parent.object else None
|
||||||
|
|
||||||
|
# If we have a model manager or similar object then we need
|
||||||
|
# to iterate through each instance.
|
||||||
|
if (self.many and
|
||||||
|
not hasattr(obj, '__iter__') and
|
||||||
|
is_simple_callable(getattr(obj, 'all', None))):
|
||||||
|
obj = obj.all()
|
||||||
|
|
||||||
|
if self.source == '*':
|
||||||
|
if value:
|
||||||
|
reverted_data = self.restore_fields(value, {})
|
||||||
|
if not self._errors:
|
||||||
|
into.update(reverted_data)
|
||||||
|
|
||||||
kwargs = {
|
kwargs = {
|
||||||
'instance': obj,
|
'instance': obj,
|
||||||
'data': value,
|
'data': value,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user