1
我想在Django中爲2個不同的用戶組實現一個認證系統。一名學生(使用他的用戶名&密碼),一名開發者(使用他的電子郵件&密碼)。目前我有一個(共同的)UserProfile模型,將由Student,Developer共享。這裏是我的模型代碼:在Django中遵循多重身份驗證後端的最佳實踐?
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'
我得到驗證,只需用戶配置模式工作。但是,一旦我介紹了學生,開發人員整個事情搞砸了。我越來越
用戶配置有沒有屬性 'DoesNotExist'
(這是從UserProfileManager存在方法),也
SiteProfileNotAvailable
錯誤。 (即使在我開始編寫電子郵件身份驗證後端之前,我也會收到這些錯誤)。我錯過了什麼?什麼是最好的路徑來實現我想要的。
如果我們離開Abstract = True,那麼它將在Db中創建UserProfile記錄。對 ?我想避免這種情況。我希望在各個表格中創建學生或開發人員配置文件。我認爲我創建兩個模型(學生,開發人員)的原因是,如果我們只有一個UserProfile模型並且區分學生/開發人員是通過一個簡單的標誌完成的,那麼任何人都只能使用一個auth後端。對 ?由於我想要多個auth後端,我使用了多種類型的用戶配置文件(Student,Developer) – 2010-11-26 08:05:33