首先,您不能为一个项目创建多个身份验证用户群。所以你必须使用提供的Django用户认证,并将其分发给多种类型的用户。 Django用户在注册时需要提供一些默认值(尝试在Django Admin中创建用户)。你可以做的是创建一个名为'CustomUser'的模型,并从AbstractUser
继承。这将使您的'CustomUser'模型成为项目用户的默认模型。由于您从AbstractUser
继承,此“CustomUser”模型将包含原始用户模型中的每个字段,然后您可以自行添加一些字段。您还需要在项目的settings.py
文件中指定原始用户模型不再是您的默认认证模型,它是您将用于认证的新“CustomUser”模型。看看下面的代码是否有帮助。
from django.db import models
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
type_choices = (
('SU', 'Super User'),
('A', 'User Type A'),
('B', 'User Type B'),
('C', 'User Type C'),
)
user_type = models.CharField(max_length=2,
choices=type_choices,
default='C')
class UserDetails(model.Model):
type = models.OneToOneField('CustomUser')
extra_info = models.CharField(max_length=200)
在上面的代码已创建的CustomUser模型,用户可以提供诸如用户名,密码等基本信息这是Django的默认值。然后,您选择它的用户类型,并在UserDetails模型上保存您的附加信息,该模型也与您的新认证模型具有OneToOne关系。您需要做的最后一件事是在settings.py
文件中。
AUTH_USER_MODEL = 'index.CustomUser'
在这里index
是创造了我CustomUser
模型。
希望这有助于应用程序。
您是否找到解决方案?您可以使用不同用户类型的组来处理,然后根据注册时的某些值将人员分配到正确的组。 – Frankline
为什么你不使用django的内建权限/组。 –