![](/img/trans.png)
[英]SQLAlchemy: return existing object instead of creating a new on when calling constructor
[英]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.