Все работает отлично до тех пор, пока значение ReferenceField не будет ссылаться на действительный документ. Затем в качестве значения остается значение ObjectID
, а json не знает, как сериализовать это.Mongoengine Django Rest Framework - Ошибка Serializer - ReferenceField не является сериализуемым JSON
Как справиться с недействительными ссылочными полями?
E.g.
class Food(Document):
name = StringField()
owner = ReferenceField("Person")
class Person(Document):
first_name = StringField()
last_name = StringField()
...
p = Person(...)
apple = Food(name="apple", owner=p)
p.delete() # might be the wrong method, but you get the idea
В этот момент, пытаясь извлечь список продуктов через REST API будет завершаться с ошибкой is not JSON serializable
, так как apple.owner
больше не указывает на владельца, который существует.
Вы также пользуетесь 'django-rest-framework-mongoengine'? –