Django rest framework django REST:如何在一对多关系中序列化objectId()

Django rest framework django REST:如何在一对多关系中序列化objectId(),django-rest-framework,mongoengine,Django Rest Framework,Mongoengine,我有一个带有mongoengine-DRF服务的mongodb后端。我有一个非常简单的一对多关系场景: 型号: class Photo(Document): path = StringField() title = StringField() owner = ReferenceField('User') class User(Document): first_name = StringField() last_name = StringField()

我有一个带有mongoengine-DRF服务的mongodb后端。我有一个非常简单的一对多关系场景:

型号:

class Photo(Document):
    path = StringField()
    title = StringField()
    owner = ReferenceField('User')



class User(Document):
    first_name = StringField()
    last_name = StringField()
    photos = ListField(ReferenceField(Photo, reverse_delete_rule=CASCADE))
现在,当我访问/api/users/时,我希望user JSON对象包含一个photos键,它只是Photo objectid的数组,而不是整个Photo对象的数组。这是我的序列化程序:

class UserSerializer(MongoEngineModelSerializer):
    photos = serializers.SlugRelatedField(many=True, read_only=True, slug_field="id")

    class Meta:
        model = User
        exclude=()
我得到了错误-

ObjectId("...") is not JSON serializable
当我用标题替换slug_字段时,效果很好。任何帮助都会很好


此外,这是处理关系的正确方法吗?我需要在照片和用户模型上记录一对多关系,这对我来说似乎有些多余

确保slug_字段名是该字段在数据库列中的名称。检查数据库。一个键可能会被附加到你在第一个位置给出的列的名称上。

嗯。不知道我做错了什么。谁能帮我一下吗?@凯文·布朗,你能帮我一下吗。非常感谢。