Django報錯:"Key 'id' not found in 'xxx'. Choices are: xxx"

環(huán)境:

Python 3.6
Django 2.2

問題:

我在Django的admin.py文件中對某個Models配置了fields字段,導(dǎo)致查看某個具體數(shù)據(jù)時,提示:Django "Key 'id' not found in 'xxx'. Choices are: xxx"

導(dǎo)致報錯代碼:

@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
    list_display = ['id','name']
    fields = ['id','name'] # 這行代碼導(dǎo)致的報錯

原因:

因為字段id設(shè)置的自增ID鍵,在數(shù)據(jù)庫中對應(yīng)的是AUTO_INCREMENT,所以這個字段是不允許編輯的,而fields這個配置設(shè)置的就是要展示那些編輯字段,這就導(dǎo)致沖突了,所以才會報錯。

解決辦法:

把代碼改為以下內(nèi)容就好了

@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
    list_display = ['id','name']
    fields = ['name'] # 這行代碼去掉id字段

本文首發(fā)于BigYoung小站

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容