簡體   English   中英

在Django中遵循多個身份驗證后端的最佳實踐?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM