在Django admin中更改“SuperUser”标签和说明

时间:2014-07-16 14:31:19

标签: django admin

我想更改Django管理员中is_superuser字段的标签和说明。

我已经看到了这个问题asked before,但这不是我需要的。

我想要的是改变超级用户状态'将字符串转换为其他内容并更改此字符串'指定此用户具有所有权限,而无需明确指定它们。 '

因为这是Django定义的User类,所以我不确定' verbose_name'有助于。或者至少在这种情况下我不知道该怎么做。

希望你们能帮忙。

感谢阅读。

2 个答案:

答案 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的原因。对于与labelhelp_text一样小的变化,正如道格拉斯亚当斯所说,修改base_fields大多是无害的。

答案 1 :(得分:0)

肮脏的方式:

如果您使用虚拟环境,您可能会更改相关的.po& .mo文件直接在虚拟环境中的django文件夹中。但是,你必须至少在需求文件中覆盖django版本,以便覆盖。