我已经回答了你的问题
related question
关于密码重置,涉及到很多类似的问题。
django.contrib.auth.views
,在
PasswordResetConfirmView
-处理重置窗体的视图-它有
get_user()
获取用户模型的方法。以及
form_valid()
方法执行用户身份验证。因此,如果您按照我的另一个答案对这个视图进行子类化,并编写这些方法的您自己的版本来处理您的非默认用户模型,那应该是正确的做法。
我不知道您的具体情况,但如果您重新开始,最好的方法可能是设置默认用户(如
AUTHOR_USER_MODEL
)到Django的一个扩展
AbstractUser
,从那里您可以使用不同的用户类型和角色自定义您的用户模型。如果你已经这样做了道歉,当然在现有的应用程序上更改用户模型是困难和危险的。但我认为有了这个设计,一个密码重置链接将覆盖所有用户。这是一个很好的
blog post
安排好那条路。