对于我的需求内置模型用户是不够的...所以我有我自己的模型UserProfile,我希望通过这个模型在网站上进行身份验证(UserProfile不继承用户模型,根本不与它相关)。 / p>
我的模特:
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
但内置身份验证使用模型User。
所以我想了解如何更改,所以身份验证使用我的模型UserProfile与所有身份验证功能??
一个好的教程会很棒!
(视图,模型和身份验证中的逐步步骤)
PS:我知道我可以在其他模型中存储额外的数据,但我不想那样
答案 0 :(得分:3)
这是一个更极端的例子,但说明了你想做的事情。作者不仅替换了身份验证后端使用的用户模型,还使用SQLAlchemy而不是Django ORM。 http://tomforb.es/using-a-custom-sqlalchemy-users-model-with-django
重点是您需要编写后端authenticate
和get_user
方法来检索自定义用户模型。如果您还想支持权限,则需要编写has_perm
。
答案 1 :(得分:0)
我使用了this文章,它对我来说足够好,希望它对你有用。
苏丹