Django-在“身份验证和授权”组中保留覆盖的用户模型(通过AUTH_USER_MODEL)

时间:2018-11-29 02:46:02

标签: django

我使用的是Django 2.1.2。

我想做的是作为建议here覆盖用户模型

工作正常,我的问题是在“ Admin> myapp”下显示的自定义用户模型,而不是“ Admin>身份验证和授权”下显示

经过一番搜索,我尝试了两件事。

1)利用 app_label ='auth'语句将其恢复为应用程序身份验证,但它会破坏setting.py中的 AUTH_USER_MODEL = myapp.User 因为现在是auth_user。

class User(AbstractUser):
    pass

    class Meta:
        app_label = 'auth'

2)使用以下语句将“ Group”移动到myapp,这样我可以将“ User”和“ Group”放在一起,但这会破坏用户模型,因为它将auth_group移到了myapp_group

apps.get_model('auth.Group')._meta.app_label = 'myapp'

欢迎任何输入

账单

1 个答案:

答案 0 :(得分:1)

您可以使用代理模型:

class User(AbstractUser):
    pass

class ProxyUser(User):
    pass

    class Meta:
        app_label = 'auth'
        proxy = True
        verbose_name = 'user'

并将以下内容添加到admin.py:

from django.contrib.auth.admin import UserAdmin
from .models import User, ProxyUser

admin.site.register(ProxyUser, UserAdmin)