[英]Best Practice for following multiple authentication backends in Django?
我正在嘗試為Django中的2個不同用戶集實施身份驗證系統。 一個學生(使用他的用戶名和密碼),一個開發人員(使用他的電子郵件名和密碼)。 目前,我有一個(通用)UserProfile模型,該模型將由學生,開發人員共享。 這是我的模型代碼:
class UserProfile(models.Model):
user = models.OneToOneField(User)
name = models.CharField(max_length=50, null=True, blank=True)
slug = models.SlugField(max_length=50, db_index=True, unique=True)#this will be used as his unique url identifier
objects = UserProfileManager()
class Meta:
abstract = True
class Student(UserProfile):
''' some student specific fields might go here '''
class Developer(UserProfile):
''' some developer specific fields might go here '''
在settings.py中,我給出了:
AUTH_PROFILE_MODULE = 'users.UserProfile'
我正在使用UserProfile模型進行身份驗證。 但是,一旦我介紹了Student,Developer,整個事情就搞砸了。 我正進入(狀態
UserProfile沒有屬性“ DoesNotExist”
(這是來自UserProfileManager的exist方法)以及
SiteProfile不可用
錯誤。 (甚至在我開始編寫電子郵件身份驗證后端之前,我都會收到這些錯誤。)。 我有什么想念的嗎? 實現我想要的最佳途徑是什么。
問題可能是UserProfile的抽象定義。 當您離開“抽象=真實”時,事情就應該起作用。 但是請注意這將如何改變您的表方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.