我被模式创建困住了,所以你能给我一个实现这个场景的想法吗
我确实有 4 种类型的用户,学生、教师、家长和管理员
我已尝试为每个用户创建 4 个表,并为用户名、密码和 token 创建一个表,但我无法将此表与用户相关联,因为不能有多个用户具有相同的用户名
我想要的是我需要使用他们的用户名和密码对每个用户进行身份验证,并且 Student 表可能与 Parent 表有关系!!!!
所以在进行身份验证时我需要知道他/她是哪种类型的用户
我正在使用 python Django 1.9
最佳答案
无需创建四个单独的表,您只需添加一个字段即可反射(reflect)用户的 user_type
。
class CustomUser(AbstractBaseUser):
...
[other model fields]
...
USER_TYPE_CHOICES = (
('student', 'Student'),
('teacher', 'Teacher'),
('parent', 'Parent'),
('admin', 'Admin'),
)
user_type = models.CharField(choices=USER_TYPE_CHOICES, max_length=7)
通过这样做,所有用户都将拥有唯一的用户名,并且他们也将变得易于管理。
您可以通过访问其 user_type
来检查用户类型,它将返回此文本值之一“Student, Teacher, Parent and Admin”。因此,您将能够处理不同用户类型的业务逻辑。
关于python - 创建具有不同用户类型的数据库表并使用用户名和密码对用户进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36146551/