mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-03 20:10:10 +03:00
Naive implementation for the dotted sources for model serializer.
This commit is contained in:
parent
117ac24ff1
commit
d5dd3772e9
|
@ -948,14 +948,20 @@ class ModelSerializer(Serializer):
|
||||||
# Update an existing instance...
|
# Update an existing instance...
|
||||||
if instance is not None:
|
if instance is not None:
|
||||||
for key, val in attrs.items():
|
for key, val in attrs.items():
|
||||||
|
# TODO: check whether we need to do something about dotted paths
|
||||||
|
dest = instance
|
||||||
|
keys = key.split('.')
|
||||||
|
for related_instance in keys[:-1]:
|
||||||
|
dest = getattr(dest, related_instance)
|
||||||
try:
|
try:
|
||||||
setattr(instance, key, val)
|
setattr(dest, keys[-1], val)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
self._errors[key] = self.error_messages['required']
|
self._errors[key] = self.error_messages['required']
|
||||||
|
|
||||||
# ...or create a new instance
|
# ...or create a new instance
|
||||||
else:
|
else:
|
||||||
instance = self.opts.model(**attrs)
|
instance = self.opts.model(**attrs)
|
||||||
|
# TODO: check whether we need to do something about dotted paths
|
||||||
|
|
||||||
# Any relations that cannot be set until we've
|
# Any relations that cannot be set until we've
|
||||||
# saved the model get hidden away on these
|
# saved the model get hidden away on these
|
||||||
|
|
Loading…
Reference in New Issue
Block a user