簡體   English   中英

如何在 Django 中向自定義管理表單添加不可編輯的字段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM