2012-04-25 116 views
2

對於我的需要內置模型用戶是不夠的...所以我有我自己的模型UserProfile,我想通過此模型在網站上進行身份驗證(UserProfile不從用戶模型繼承,它根本)。使用自定義模型的Django身份驗證用戶

我的模型:

class UserProfile(models.Model): 
    password = models.CharField(max_length = 40) 
    email = models.EmailField(max_length = 72, unique = True) 

    ## Add this so that you can use request.user.is_authenticated 
    def is_authenticated(self): 
     return True 

但內置的身份驗證使用模式的用戶。

所以我想了解我該如何改變這一點,所以身份驗證使用我的模型UserProfile與所有身份驗證功能?

一個好的教程將是偉大的!

(在視圖模型的步驟和驗證步驟)

PS:我知道我可以存儲在其他模型額外的數據,但我不希望

回答

3

這裏有一個更極端的例子,但說明了你想做的事可以做到的。作者不僅替換認證後端使用的用戶模型,而且還使用SQLAlchemy代替Django ORM。 http://tomforb.es/using-a-custom-sqlalchemy-users-model-with-django

重點是您需要編寫您的後端authenticateget_user方法來檢索您的自定義用戶模型。如果您還想支持權限,則需要編寫has_perm

+0

這幫助我分配。我正朝着正確的方向努力。唯一我忘記的是在我的UserProfile模型中添加'def is_authenticated(self):return True'。往上看 – nelsonvarela 2012-04-25 14:25:09

0

我用this文章和它的工作好對我來說足夠了,希望它對你有用。

蘇丹

+0

我剛編輯了這個問題。我不擴展用戶。我有我自己的用戶。 – nelsonvarela 2012-04-25 13:37:46

相關問題