使用自定义模型用户进行Django身份验证
对于我的需要,内置模型用户是不够的。。。所以我有我自己的模型UserProfile,我想通过这个模型在站点上进行身份验证(UserProfile不从用户模型继承,也和它没有任何关系) 我的模型:使用自定义模型用户进行Django身份验证,django,django-models,django-forms,django-admin,django-views,Django,Django Models,Django Forms,Django Admin,Django Views,对于我的需要,内置模型用户是不够的。。。所以我有我自己的模型UserProfile,我想通过这个模型在站点上进行身份验证(UserProfile不从用户模型继承,也和它没有任何关系) 我的模型: class UserProfile(models.Model): password = models.CharField(max_length = 40) email = models.EmailField(max_length = 72, unique = True) ##
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
但内置身份验证使用模型用户
因此,我想了解如何改变这一点,因此身份验证使用我的model UserProfile和所有身份验证功能???
一个好的教程将是伟大的
(在视图、模型和身份验证中逐步进行)
PS:我知道我可以在其他模型中存储额外的数据,但我不想要那个我用过这篇文章,它对我来说已经足够好了,希望它能对你们有用
苏丹这里有一个更极端的例子,但说明你想做的事情是可以做到的。作者不仅替换了身份验证后端使用的用户模型,而且还使用了SQLAlchemy而不是Django ORM
主要的一点是,您需要编写后端
authenticate
和get\u user
方法来检索自定义用户模型。如果您还想支持权限,您需要编写has\u perm
我刚刚编辑了这个问题。我不是在扩展用户。我有自己的用户。这有助于我分配。我的工作方向是正确的。我唯一忘记的是在我的UserProfile模型中添加def is_authenticated(self):returntrue
。见上文