我不完全確定我的問題的標題是否與我想要的一樣具體,但情況如此:Django Rest Framework接收POST中的主鍵值並將模型對象作爲嵌套序列化器
我有一個HyperlinkedModelSerializer
,看起來像這樣:
class ParentArrivalSerializer(serializers.HyperlinkedModelSerializer):
carpool = SchoolBuildingCarpoolSerializer()
class Meta:
model = ParentArrival
正如你可以看到carpool
被定義爲一個嵌套的序列化對象,我要的是能夠使一個POST請求,以這種方式來創建一個ParentArrival
(data as application/json):
{
...
"carpool": "http://localhost:8000/api/school-building-carpools/10/"
...
}
並以這種方式得到的數據:
{
"carpool": {
"url": "http://localhost:8000/api/school-building-carpools/10/"
"name": "Name of the carpool",
...
}
}
基本上,我正在尋找一種方式來處理嵌套串行無需發送數據作爲一個對象(但ID或網址在這種情況下, )在POST請求中,但接收嵌套在序列化響應中的對象。
它就像一個魅力!我不得不做一些其他的黑客,因爲我的API是超鏈接的,但你的解決方案伎倆! –
我們可以創建一個像這樣的通用字段,我們可以在初始化時傳遞串行器嗎? – Anuj
很酷的解決方案。但值得注意的是,這意味着您只能發佈主鍵而不是豐富的對象。這在API場景中令人沮喪,因爲它意味着你可以從你的django應用程序獲取資源(角度:'$ http.get('/ my/resource');',但是不能保存該對象而不更改嵌入對象返回int。 – chukkwagon