使用django和django-rest-framework实现以下api的正确方法是什么?第一模型在Django rest框架中请求带有id列表的多对多关系
模型
def ChatModel(models.Model):
users = models.ManyToManyField(User, through=ChatUser)
响应
得到这个模型,其中多对多的关系呈现嵌套串行器时,期望的响应:
[
{
"id": 1,
"title": "gossip",
"users": [
{
"id": 1,
"name": "George"
},
{
"id": 2,
"name": "Jerry"
}
]
}
]
请求是关键部分:让api收到一个lis t主键,并在后端创建用户 - >聊天关系。
请求
{
"title": "gossip",
"users": [1,2]
}
因此,我怎么允许创建一个带有许多的目的是一对多的关系这样的要求。
编辑
我一直在尝试这种使用ChatRequestSerializer
类,让用户现场像这样
users = serializers.ListField(child=serializers.PrimaryKeyRelatedField(many=True, queryset=User.objects.all()))
和处理通过重写串行的create
方法创建的关系来实现。这不工作,因为它引发错误:“ManyRelatedManager”对象不是可迭代
这个问题更像是:我有这个* *我想* *说。但是,我如何做这件事的主要部分缺失。你到现在为止尝试过什么? –
我编辑了我的问题来解释我到目前为止所做的工作 – matteok