我正在自定义 django admin,我想更改我的字段的显示名称。我想答案就在这里,但我找不到。感谢 Meta 类,我已经更改了表名。我还订购了字段,收集它们,折叠它们......
问问题
15111 次
3 回答
30
我正在寻找的是:
name = models.CharField(max_length=200, verbose_name="Nom")
无论如何感谢您的帮助!
于 2013-09-03T13:40:21.007 回答
8
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
于 2020-10-07T15:34:12.850 回答
6
查看 Field.label。看到这个:https ://docs.djangoproject.com/en/dev/ref/forms/fields/#label
基本上,它是
class MyForm(forms.Form):
name = forms.CharField(label='My Name')
但这需要扩展管理员,这可能比您想做的要多。
于 2013-08-29T16:34:06.483 回答