无法使用create()方法DRF中的.pop('field')从序列化程序中删除字段

2024-04-20 00:14:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是Django rest框架。我想创建管理端点,用户可以在其中添加具有项目权限的成员。以下是来自用户的数据。在

{
  "email" : "name@yopmail.com",
  "first_name" : "asd",
  "last_name" : "asd",
  "projects":[{
     "project_id" : 1,
     "project_role" : 1 },
   { "project_id" : 1,
     "project_role" : 1
  }],
  "position" : "something something"
}

下面是我为验证和保存数据而创建的序列化程序。在

^{pr2}$

不过,从验证过的数据中弹出项目后,我得到了以下错误。在

AttributeError: Got AttributeError when attempting to get a value for field `projects` on serializer `ProjectMemberSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `User` instance.
Original exception text was: 'User' object has no attribute 'projects'.

Tags: 数据项目用户nameprojectidfieldon
1条回答
网友
1楼 · 发布于 2024-04-20 00:14:59

看起来您的模型没有名为projects的字段,在这种情况下,您需要指定字段的源,以便将序列化程序的字段与模型的字段链接起来,例如“project_set”:

 projects = ProjectPermissionSerializer(many=True, source='project_set')

相关问题 更多 >