mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-02 20:54:42 +03:00
Clean out ModelSerializer special casing from Serializer.field_from_native
This commit is contained in:
parent
fb3b57803f
commit
47492e3ef4
|
@ -379,11 +379,7 @@ class BaseSerializer(WritableField):
|
||||||
serializer = self.__class__(**kwargs)
|
serializer = self.__class__(**kwargs)
|
||||||
|
|
||||||
if serializer.is_valid():
|
if serializer.is_valid():
|
||||||
if isinstance(serializer, ModelSerializer):
|
into[self.source or field_name] = serializer.object
|
||||||
into[self.source or field_name] = serializer
|
|
||||||
else:
|
|
||||||
into[self.source or field_name] = serializer.object
|
|
||||||
# into[self.source or field_name] = serializer.object
|
|
||||||
else:
|
else:
|
||||||
# Propagate errors up to our parent
|
# Propagate errors up to our parent
|
||||||
raise NestedValidationError(serializer.errors)
|
raise NestedValidationError(serializer.errors)
|
||||||
|
@ -681,12 +677,6 @@ class ModelSerializer(Serializer):
|
||||||
if instance:
|
if instance:
|
||||||
return self.full_clean(instance)
|
return self.full_clean(instance)
|
||||||
|
|
||||||
# def save_object(self, obj, **kwargs):
|
|
||||||
# """
|
|
||||||
# Save the deserialized object and return it.
|
|
||||||
# """
|
|
||||||
# obj.save(**kwargs)
|
|
||||||
# =======
|
|
||||||
def save_object(self, obj, parent=None, fk_field=None, **kwargs):
|
def save_object(self, obj, parent=None, fk_field=None, **kwargs):
|
||||||
"""
|
"""
|
||||||
Save the deserialized object and return it.
|
Save the deserialized object and return it.
|
||||||
|
@ -706,13 +696,10 @@ class ModelSerializer(Serializer):
|
||||||
if related is None:
|
if related is None:
|
||||||
previous = getattr(self.object, accessor_name, related)
|
previous = getattr(self.object, accessor_name, related)
|
||||||
previous.delete()
|
previous.delete()
|
||||||
elif isinstance(related, ModelSerializer):
|
elif isinstance(related, models.Model):
|
||||||
# print related.object
|
|
||||||
# print related.related_data, related.m2m_data
|
|
||||||
fk_field = obj._meta.get_field_by_name(accessor_name)[0].field.name
|
fk_field = obj._meta.get_field_by_name(accessor_name)[0].field.name
|
||||||
related.save_object(related.object, parent=self.object, fk_field=fk_field)
|
setattr(related, fk_field, obj)
|
||||||
# setattr(related, fk_field, obj)
|
self.save_object(related)
|
||||||
# related.save(**kwargs)
|
|
||||||
else:
|
else:
|
||||||
setattr(self.object, accessor_name, related)
|
setattr(self.object, accessor_name, related)
|
||||||
obj._related_data = {}
|
obj._related_data = {}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user