密码仅按用户名重置

时间:2018-01-13 18:47:39

标签: python django django-authentication

我使用电子邮件简化了django密码重设,但目前只想限制用户名,以便用户只能使用用户名更改密码。已尝试django built-inplugin,但无法设置为仅用户名。任何建议将不胜感激

1 个答案:

答案 0 :(得分:1)

编写您自己的重置密码。您需要编写的唯一代码是获取用户的第一步,生成一个仅用于重置密码和发送电子邮件的链接。

Django使用PasswordResetForm做到这一点。源代码是here(第242-306行)。将此代码复制/粘贴到您的forms.py(包括所需的导入),并将其修改为接受用户名而不是电子邮件。

在您的代码中,然后验证您的PasswordResetForm并调用save()以生成一个仅限链接并发送邮件。

form = YourPasswordResetForm(request.POST)
if form.is_valid():
    form.save()

请记住始终返回成功消息,即使用户不存在且未发送电子邮件,因为否则您将提供有关已注册用户名的信息。