1 回答

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊
您依靠此處的字符串方法將外鍵作為人類可讀的名稱傳遞。但是,您的下拉菜單正確傳遞了 ID。我想您也將此序列化程序用于 RetrieveApiView,因此您可以通過一種簡(jiǎn)單的方法在詳細(xì)信息視圖中內(nèi)聯(lián)類別。
要解決這個(gè)更新問題,請(qǐng)使用第二個(gè)序列化程序進(jìn)行更新:
class JobUpdateSerializer(serializers.ModelSerializer):
category = serializers.PrimaryKeyRelatedField(source='job_category')
class Meta:
model = Job
fields =['id','title','category']
如果你想保留一個(gè)序列化程序,那么你需要做更多的工作來(lái)修復(fù)前端,因?yàn)槟愕挠行лd荷將嵌套,但你可以同時(shí)訪問 id 和 name(通過主鍵更新更安全和更清晰,因?yàn)樗皇芟拗茋?guó)際化,例如):
class JobSerializer(serializers.ModelSerializer):
category = JobCategorySerializer(source='job_category')
class Meta:
model = Job
fields =['id','title','category']
輸出將是:
{
"id": 1,
"title": "dog",
"category": {
"id": 2,
"title": "animal"
}
}
添加回答
舉報(bào)