Fixed wrong ID representation in generic relation

This commit is contained in:
Eliot Berriot 2019-08-29 11:45:14 +02:00
parent 6e82780e0d
commit 80c8610632
No known key found for this signature in database
GPG Key ID: DD6965E2476E5C27
1 changed files with 4 additions and 2 deletions

View File

@ -68,14 +68,16 @@ class GenericRelation(serializers.JSONField):
return return
type = None type = None
id = None id = None
id_attr = None
for key, choice in self.choices.items(): for key, choice in self.choices.items():
if isinstance(value, choice["queryset"].model): if isinstance(value, choice["queryset"].model):
type = key type = key
id = getattr(value, choice.get("id_attr", "id")) id_attr = choice.get("id_attr", "id")
id = getattr(value, id_attr)
break break
if type: if type:
return {"type": type, "id": id} return {"type": type, id_attr: id}
def to_internal_value(self, v): def to_internal_value(self, v):
v = super().to_internal_value(v) v = super().to_internal_value(v)