首先,您不能为一个项目建立多个身份验证用户库。因此,您必须使用提供的Django用户身份验证并将其分叉给多种类型的用户。Django用户具有一些在注册过程中需要提供的默认值(尝试在Django
Admin中创建用户)。您可以做的是创建一个名为“ CustomUser”的模型并从中继承
AbstractUser。这将使“
CustomUser”模型成为项目用户的默认模型。因为您是从
AbstractUser“
CustomUser”模型继承的,所以原始用户模型将包含所有字段,然后您可以自行添加一些字段。您还需要在
settings.py项目的原始用户模型不再是您的默认身份验证模型,而是将用于身份验证的新“
CustomUser”模型。查看以下代码是否有帮助。
from django.db import modelsfrom django.contrib.auth.models import AbstractUserclass 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创建我的模型的应用程序。
希望这可以帮助。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)