我想在Django admin中更改is_superuser字段的标签和描述。
我已经看到这个问题asked before,但这并不是我需要的。
我想要的是将“超级用户状态”字符串更改为其他字符串,并将此字符串更改为“指定此用户拥有所有权限,而无需显式分配这些权限。”
因为这是Django定义的User类,所以我不确定'verbose_name‘会有什么帮助。至少在这种情况下我不知道该怎么做。
希望你们能帮上忙。
感谢您的阅读。
发布于 2015-08-20 10:14:50
这可以通过覆盖django的UserAdmin的自定义子类上的get_form()来完成,如下所示:
# 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这样的微小变化,正如Douglas Adams可能会说的那样,修改base_fields基本上是无害的。
发布于 2014-07-16 22:56:01
::肮脏的方式
如果你使用虚拟环境,你可以直接在虚拟环境中的django文件夹中更改相关的.po& .mo文件。但是,你必须锁定django版本,至少在需求文件中不能覆盖。
https://stackoverflow.com/questions/24783496
复制相似问题