如何处理Django中的两个自定义用户模型案例?

时间:2017-11-07 08:52:39

标签: python django

我制作了两个继承from django.contrib.auth.models import AbstractUser形式,名称UserAdminUser的模型。

但是在runserver中有检查确定的错误,所以我添加:

AUTH_USER_MODEL = "qiyun_admin_usermanage.User"

在我的settings.py中。半错误消失了,但仍然存在qiyun_admin_usermanage.AdminUser问题。我不知道我是否可以在AUTH_USER_MODEL中设置两个自定义模型,或者只能有一个AUTH_USER_MODEL?

追溯:

...
django.core.management.base.SystemCheckError: SystemCheckError: System check identified some issues:

ERRORS:
qiyun_admin_usermanage.AdminUser.groups: (fields.E304) Reverse accessor for 'AdminUser.groups' clashes with reverse accessor for 'User.groups'.
        HINT: Add or change a related_name argument to the definition for 'AdminUser.groups' or 'User.groups'.
qiyun_admin_usermanage.AdminUser.user_permissions: (fields.E304) Reverse accessor for 'AdminUser.user_permissions' clashes with reverse accessor for 'User.user_permissions'.
        HINT: Add or change a related_name argument to the definition for 'AdminUser.user_permissions' or 'User.user_permissions'.
qiyun_admin_usermanage.User.groups: (fields.E304) Reverse accessor for 'User.groups' clashes with reverse accessor for 'AdminUser.groups'.
        HINT: Add or change a related_name argument to the definition for 'User.groups' or 'AdminUser.groups'.
qiyun_admin_usermanage.User.user_permissions: (fields.E304) Reverse accessor for 'User.user_permissions' clashes with reverse accessor for 'AdminUser.user_permissions'.
        HINT: Add or change a related_name argument to the definition for 'User.user_permissions' or 'AdminUser.user_permissions'.

1 个答案:

答案 0 :(得分:-1)

可能只有一个AUTH_USER_MODEL。如果您想要分隔用户和管理员,则会有一个代码段:

from django.contrib.auth.models import AbstractBaseUser
from django.contrib.auth.models import PermissionsMixin

class CustomUser(AbstractBaseUser, PermissionsMixin):

    name = models.CharField(max_length=40)
    ...

PermissionsMixinis_superuser列添加到可以处理权限的数据库中。