[英]How do you add a non-editable field to a custom admin form in Django
我正在嘗試向自定義管理表單添加一個editable=False
字段,但出現錯誤:
django.core.exceptions.FieldError: 'help_num' cannot be specified for
Investigation model form as it is a non-editable field
這是真的,在我的模型中,我將其設置為:
模型.py
help_num = models.CharField(max_length=17, unique=True, default=increment_helpdesk_number, editable=False)
表格.py
class HelpDeskModelForm(forms.ModelForm):
class Meta:
model = HelpDesk
fields = [
"help_num",
"help_types",
...
"help_summary"
]
管理文件
class HelpDeskModelAdmin(admin.ModelAdmin):
readonly_fields=('help_num',)
form = HelpDeskModelForm
我將readonly
添加到 admin.py,但仍然出現錯誤。 我做錯了什么?
您需要從類表單字段列表中刪除不可編輯的字段:
class HelpDeskModelForm(forms.ModelForm):
class Meta:
model = HelpDesk
fields = [
#"help_num",
"help_types",
...
"help_summary"
]
並像您一樣在 ModelAdmin 中保留只讀字段:
class HelpDeskModelAdmin(admin.ModelAdmin):
readonly_fields=('help_num',)
form = HelpDeskModelForm
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.