簡體   English   中英

創建新對象,而不是在DRF中分配現有對象POST

[英]creating new object instead of assigning existing object POST in DRF

最近,我們已經從傳統視圖轉移到API視圖,因此開始實施DRF。 所以,我的主要問題是我有一個模型,該模型的外鍵指向另一個模型

class Task(model.Models):
   created_by=models.ForeignKey(User, null=true, blank=true)
   assignees = models.ManyToManyField(User, related_name="assignees", blank=True)

class UserSerializer(serializer.ModelSerializer):
   class Meta:
       model = User

class TaskSerializer(serializer.ModelSerializer):
   created_by = UserSerializer()
   assignees = UserSerializer(many=True, required=False)
   class Meta:
       model=Task

現在,當我使用User(pk = 10)已經存在的用戶創建任務時。 創建新用戶而不是分配現有用戶。

here is my input:
{
  "created_by": {
    "id": 10,
    "email": "xyz@gmail.com",
    "name": "abc def"
  },
  "assignees": []
}
here is the output:
{
  "id":23,
  "created_by": {
    "id": 11,
    "email": "xyz@gmail.com",
    "name": "abc def"
  },
  "assignees": [
  ]
}

接到Linovia一些幫助:本: - https://gist.github.com/xordoquy/78a2d0e2ec85e2d7aadf但測試用例失敗。 誰能建議我需要它。

可能使用PrimaryKeyRelatedField可以完成這項工作。

class TaskSerializer(serializer.ModelSerializer):
    created_by = serializeres..PrimaryKeyRelatedField()
    assignees = UserSerializer(many=True, required=False)

    class Meta:
        model=Task

並將您的json更新為:

{
  "created_by": 10,
  "assignees": []
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM