Django-创建一个新的用户模型,扩展已经扩展的用户模型



我正在启动一个新项目,并创建了扩展AbstractBaseUser的用户模型,如下所示:

class NewUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField( unique=True)
user_name = models.CharField(max_length=150, unique=True)
...

我想知道创建我的用户(例如教师(是否可能,是否有意义通过扩展NewUser并添加所有教师简档信息。这将类似于:

class Teacher(NewUser):
role = models.CharField(max_length=150)
title = models.CharField(max_length=150)
date_of_birth = models.CharField(max_length=150)
...

这是一个好的做法吗?它是否允许我使用DRS的内置身份验证方法?

如果我想让其他用户(例如学生(也注册帐户并登录,这会带来更大的灵活性吗?

还是直接使用NewUser更有意义?

非常感谢您的建议/见解!

我建议使用OneToOneField,如下所示:

class Teacher(models.Model):
user = models.OneToOneField(NewUser, related_name='teacher')
# Other fields that related to Teacher
class Student(models.Model):
user = models.OneToOneField(NewUser, related_name='student')
# Other fields that related to Student

因此,NewUser模型将只负责loginsignuppermissions

最新更新