環(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小站