使用自定义模型用户进行Django身份验证

使用自定义模型用户进行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) ##

对于我的需要,内置模型用户是不够的。。。所以我有我自己的模型UserProfile,我想通过这个模型在站点上进行身份验证(UserProfile不从用户模型继承,也和它没有任何关系)

我的模型:

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
。见上文