mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-03 20:10:10 +03:00
Try to recover an object by its ID before duplicating it.
This commit is contained in:
parent
3ed62976ca
commit
19dcdc5442
|
@ -526,6 +526,11 @@ class BaseSerializer(WritableField):
|
||||||
# Determine which object we're updating
|
# Determine which object we're updating
|
||||||
identity = self.get_identity(item)
|
identity = self.get_identity(item)
|
||||||
self.object = identity_to_objects.pop(identity, None)
|
self.object = identity_to_objects.pop(identity, None)
|
||||||
|
if not self.object and getattr(self.opts, 'model', None):
|
||||||
|
try:
|
||||||
|
self.object = self.opts.model.objects.get(id=self.get_identity(item))
|
||||||
|
except ObjectDoesNotExist:
|
||||||
|
pass
|
||||||
if self.object is None and not self.allow_add_remove:
|
if self.object is None and not self.allow_add_remove:
|
||||||
ret.append(None)
|
ret.append(None)
|
||||||
errors.append({'non_field_errors': ['Cannot create a new item, only existing items may be updated.']})
|
errors.append({'non_field_errors': ['Cannot create a new item, only existing items may be updated.']})
|
||||||
|
|
Loading…
Reference in New Issue
Block a user