我遵循这些 [1、2、3] 链接,通过扩展AbstractBaseUser
类来创建自定义用户模型。我在这个表中存储了三类用户的登录信息,比如教师、管理员和学生。USERNAME
字段是emailId
。
我想使emailId
在一类用户中唯一。换句话说,在我的系统中,学生也可以用相同的emailId
注册为教师。但由于emailId
是USERNAME
字段,因此是唯一的,所以我无法做到这一点。
请建议如何在Django应用程序中执行此操作。你知道吗
用户模型:
class UserModel(AbstractBaseUser):
user_type_choices = (
(constants.USER_TYPE_ADMIN, 'Admin'),
(constants.USER_TYPE_INSTITUTE, 'Institute'),
(constants.USER_TYPE_STUDENT, 'Student')
)
sys_id = models.AutoField(primary_key=True, blank=True)
name = models.CharField(max_length=127, null=False, blank=False)
email = models.EmailField(max_length=127, unique=True, null=False, blank=False)
mobile = models.CharField(max_length=10, unique=True, null=False, blank=False)
user_type = models.PositiveSmallIntegerField(choices=user_type_choices, null=False, blank=True)
is_staff = models.BooleanField()
is_active = models.BooleanField(default=True)
objects = MyUserManager()
USERNAME_FIELD = "email"
REQUIRED_FIELDS = ['name', 'mobile', 'user_type','is_staff']
我正在使用其他模型,如studentsdeails、TeacherDetails和UserModel外键来存储额外的信息。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐