簡體   English   中英

在 Django admin 中更改字段名稱

[英]Change field name in django admin

我正在自定義 django admin,我想更改我的字段的顯示名稱。 我想答案就在這里,但我找不到。 由於 Meta 類,我已經更改了表名。 我也訂購了領域,收集了它們,折疊了它們......

我正在尋找的是:

name = models.CharField(max_length=200, verbose_name="Nom")

無論如何感謝您的幫助!

在模型字段上設置verbose_name ,就像在接受的答案中一樣,確實有效,但它有一些缺點:

  • 它也會影響非管理員表單中的字段標簽,如評論中所述

  • 它更改了模型字段的定義,因此會導致新的遷移

如果你只是想改變在管理網站領域的顯示名稱,您既可以覆蓋整個表格,在提出這個其他答案,或者干脆通過擴展修改表單字段標簽ModelAdmin.get_form()如下面的例子:

class MyModelAdmin(admin.ModelAdmin):
    def get_form(self, request, obj=None, change=False, **kwargs):
        form = super().get_form(request, obj, change, **kwargs)
        form.base_fields['my_model_field_name'].label = 'new name'
        return form

請注意,如果該字段在readonly_fields (至少在 Django 2.2.16 中),則這不起作用,因為該字段將被排除在form.base_fields (請參閱源代碼)。 在這種情況下,一個選擇是從readonly_fields刪除該字段並禁用它,方法是在get_form()添加另一行:

form.base_fields['my_model_field_name'].disabled = True

看看 Field.label。 請參閱: https : //docs.djangoproject.com/en/dev/ref/forms/fields/#label

基本上,它是

class MyForm(forms.Form):
    name = forms.CharField(label='My Name')

但這需要擴展管理員,這可能比您想做的更多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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