我想更改Django管理员中is_superuser字段的标签和说明。
我已经看到了这个问题asked before,但这不是我需要的。
我想要的是改变超级用户状态'将字符串转换为其他内容并更改此字符串'指定此用户具有所有权限,而无需明确指定它们。 '
因为这是Django定义的User类,所以我不确定' verbose_name'有助于。或者至少在这种情况下我不知道该怎么做。
希望你们能帮忙。
感谢阅读。
答案 0 :(得分:1)
这可以通过在django的get_form()
的自定义子类上覆盖UserAdmin
来完成,如下所示:
# admin.py
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
class MyUserAdmin(UserAdmin):
def get_form(self, request, obj, **kwargs):
form = super(MyUserAdmin, self).get_form(request, obj, **kwargs)
form.base_fields['is_superuser'].label = 'My label'
form.base_fields['is_superuser'].help_text = 'My help text'
return form
# NOTE: You may need to unregister the existing UserAdmin
# before registering this custom one
admin.site.register(User, MyUserAdmin)
请注意,get_form()
会返回一个没有fields
属性的表单,这就是您访问base_fields
的原因。对于与label
和help_text
一样小的变化,正如道格拉斯亚当斯所说,修改base_fields
大多是无害的。
答案 1 :(得分:0)
肮脏的方式:
如果您使用虚拟环境,您可能会更改相关的.po& .mo文件直接在虚拟环境中的django文件夹中。但是,你必须至少在需求文件中覆盖django版本,以便覆盖。