我在我的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