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