我在我的django项目中需要两种类型的登录,其中一个登录名为学生,一个登录名为教师。扩展用户模型以创建用户2模型
我已经浏览了Django文档和其他互联网资源,并且我已经提出了一个简单的设计解决方案,但我不确定正反两面,因为我对Django仍然很陌生。
解决方案我认为解决这个问题:
1)对于学生登录,我已成功集成Django的allauth,它是工作的罚款。
2)现在的老师登录,我想建立一个模型,如下所示:
class Teacher(models.Model):
teacher = models.OneToOneField(User,unique=True)
identifier = models.CharField(max_length=128)
#other fields
3)然后两种形式在这个模型 - 注册和登录为教师和电子邮件验证形式:在这里,我以为我会在成功注册后创建教师对象和学生对象,但我会设置is_active=False
并要求进行电子邮件验证。验证成功后,我会设置is_active=True
,以便教师能够成功登录。
4)避免学生登录教师部分,教师可以在学生部分登录:在这里我有一个标识符字段,以避免已认证的学生在教师部分登录。
任何人都可以通过提供您对这个解决方案的意见或通过建议一些更好的选择来帮助我,因为我仍然在阅读越来越多的Django文档。
在此先感谢!
其实我试图通过电子邮件验证在#3验证注册。实际上,我的学生登录信息从过去四个月起在网上直播,大约有1500个注册,所以我不想对学生的登录机制进行任何更改。 UserProfile的这个想法看起来不错。我正在进一步调查,以便在我的情况下能够正常工作。谢谢!! – gmfreak