在Django

时间:2018-12-29 17:10:44

标签: django

由于我要创建的应用程序很复杂,因此最终得到了三个用户模型。其中一个几乎与普通User相同,除了admin和另外两个以外,不用于其他任何用途。我编写了自己的一组auth后端来处理它,并且运行良好。

现在,我的问题是拥有重置密码系统。使用自定义模型时,是否可以使用Django的重置密码视图?

1 个答案:

答案 0 :(得分:0)

我已经回答了您的related question关于密码重置的问题,密码重置有很多类似的理由。

我还没有尝试过使用多个用户模型进行密码重置,但是如果您在django.contrib.auth.viewsPasswordResetConfirmView(处理重置表单的视图)中查看Django的auth视图,则它具有{ {1}}方法,用于获取用户模型。 get_user()方法执行用户身份验证。因此,如果您按照我的其他答案将该视图子类化,并编写自己的这些方法的版本来处理您的非默认用户模型,那应该是解决方法。

我不知道您的具体情况,但是如果您再次开始,最好的方法可能是将默认用户(如form_valid()中指定的)设置为Django {{1}的扩展名},然后您可以使用不同的用户类型和角色自定义用户模型。道歉(如果您已经这样做的话),当然,在现有应用程序上更改用户模型既困难又冒险。但是我认为采用这种设计,一个密码重置链接将覆盖所有用户。这是一种很好的blog post布局方法。