Django:将组重命名为角色

Apa*_*ala 4 django django-admin django-authentication

我需要在 Django 项目中使用“Role”这个词而不是“Group”。

我试过 i18n,但可以auth选择翻译。

我也尝试用django.contrib.auth一个叫做“角色”的myaqpp.auth地方替换Group。

进行此重命名的正确方法是什么?

小智 8

这只是Role在管理界面中显示的问题,而不是Group? 在这种情况下,您可以轻松创建代理模型:

模型:

from django.contrib.auth.models import Group
from django.utils.translation import ugettext_lazy as _


class Role(Group):
    class Meta:
        proxy = True
        app_label = 'auth'
        verbose_name = _('Role')
Run Code Online (Sandbox Code Playgroud)

然后Group从 中取消注册默认模型GroupAdmin并注册您的Role模型:

from django.contrib.auth.admin import GroupAdmin
from django.contrib.auth.models import Group

from .models import Role


admin.site.unregister(Group)
admin.site.register(Role, GroupAdmin)
Run Code Online (Sandbox Code Playgroud)

综上所述,我会质疑强迫您实施如此愚蠢的事情的商业决策。

  • 这是正确答案。唯一缺少的想法是来自 User 模型的内联表单仍然显示为 Group。 (4认同)