Hyd*_*Ura 5 database django django-models django-admin python-3.x
我正在定制django管理员,我想更改我的字段的显示名称.我认为答案就在这里,但我找不到.由于Meta类,我已经更改了表名.我还订购了田地,收集了它们,折叠了它们......
Hyd*_*Ura 25
我在寻找的是:
name = models.CharField(max_length=200, verbose_name="Nom")
Run Code Online (Sandbox Code Playgroud)
无论如何,谢谢你的帮助!
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
Run Code Online (Sandbox Code Playgroud)
请注意,如果该字段在readonly_fields(至少在 Django 2.2.16 中),则这不起作用,因为该字段将被排除form.base_fields(请参阅源代码)。在这种情况下,一个选择是readonly_fields通过在里面添加另一行来删除该字段并禁用它get_form():
form.base_fields['my_model_field_name'].disabled = True
Run Code Online (Sandbox Code Playgroud)
看看 Field.label。请参阅:https : //docs.djangoproject.com/en/dev/ref/forms/fields/#label
基本上,它是
class MyForm(forms.Form):
name = forms.CharField(label='My Name')
Run Code Online (Sandbox Code Playgroud)
但这需要扩展管理员,这可能比您想做的更多。