Python 如何在Django中处理两个自定义用户模型的情况?
我创建了两个模型,它们从django.contrib.auth.models继承了表单Python 如何在Django中处理两个自定义用户模型的情况?,python,django,Python,Django,我创建了两个模型,它们从django.contrib.auth.models继承了表单,导入AbstractUser,nameUser和AdminUser 但运行服务器时会出现检查识别错误,因此我添加: AUTH_USER_MODEL = "qiyun_admin_usermanage.User" 在mysettings.py中。错误消失了一半,但仍然存在qiyun\u admin\u usermanage.AdminUser的问题。我不知道是否可以在AUTH\u USER\u MODEL中设
,导入AbstractUser
,nameUser
和AdminUser
但运行服务器时会出现检查识别错误,因此我添加:
AUTH_USER_MODEL = "qiyun_admin_usermanage.User"
在mysettings.py
中。错误消失了一半,但仍然存在qiyun\u admin\u usermanage.AdminUser
的问题。我不知道是否可以在AUTH\u USER\u MODEL
中设置两个自定义模型,或者只能有一个AUTH\u USER\u模型
回溯:
...
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'.
只能有一个验证用户模型。如果要分离用户和管理员,则有一个代码段:
from django.contrib.auth.models import AbstractBaseUser
from django.contrib.auth.models import PermissionsMixin
class CustomUser(AbstractBaseUser, PermissionsMixin):
name = models.CharField(max_length=40)
...
PermissionsMixin
将is\u superuser
列添加到可以处理权限的数据库中。您可能应该尝试在自定义用户模型上创建一个is\u admin
字段,或者使用组来标识管理员,你不认为把普通用户和管理员用户分成两个表更好吗?不,因为他们都是相同类型的“东西”(用户),角色不同,属性不同。拥有两个表会使用户管理变得非常复杂当拥有两个用户模型时(如OP所要求的)执行上述操作会导致问题的确切错误。