有没有办法使用Django';在不通过电子邮件发送重置链接的情况下重置默认密码?

有没有办法使用Django';在不通过电子邮件发送重置链接的情况下重置默认密码?,django,email,reset-password,Django,Email,Reset Password,有没有一种方法可以使用django内置的密码重置功能,而无需通过电子邮件发送重置链接或不使用电子邮件选项。我目前正在开发一个简单的系统,有几个用户不需要发送电子邮件。提前谢谢你,我对django不太熟悉,但之前我曾开发过其他应用程序,通过密码重置,任何用户都可以访问,甚至是初始管理员。在所有这些情况下,工作方法都是类似的——重置链接由一些URL存根加上在某个数据库表某处找到的唯一键组成。手动组装链接并使用它效果很好,尽管有一个系统使用了emailsentdate列,并且拒绝做任何事情,除非它被填

有没有一种方法可以使用django内置的密码重置功能,而无需通过电子邮件发送重置链接或不使用电子邮件选项。我目前正在开发一个简单的系统,有几个用户不需要发送电子邮件。提前谢谢你,我对django不太熟悉,但之前我曾开发过其他应用程序,通过密码重置,任何用户都可以访问,甚至是初始管理员。在所有这些情况下,工作方法都是类似的——重置链接由一些URL存根加上在某个数据库表某处找到的唯一键组成。手动组装链接并使用它效果很好,尽管有一个系统使用了emailsentdate列,并且拒绝做任何事情,除非它被填充,所以如果用简单的方法没有成功,请检查类似的事情


如果你一定要有一个电子邮件服务器,那么确实存在一些简单的用于开发人员的服务器,比如smtpdev,它们的行为就像一个smtp服务器来愚弄一个需要它的应用程序,但是它们不会将电子邮件发送到任何地方,它们只是显示它们。用于调试,但如果django坚持要配置一个看起来像真正邮件服务器的应用程序,则可能会对您有所帮助。我不熟悉django,但我曾经使用过其他应用程序,在这些应用程序中,任何用户都可以通过密码重置获得访问权限,即使是初始管理员。在所有这些情况下,工作方法都是类似的——重置链接由一些URL存根加上在某个数据库表某处找到的唯一键组成。手动组装链接并使用它效果很好,尽管有一个系统使用了emailsentdate列,并且拒绝做任何事情,除非它被填充,所以如果用简单的方法没有成功,请检查类似的事情


如果你一定要有一个电子邮件服务器,那么确实存在一些简单的用于开发人员的服务器,比如smtpdev,它们的行为就像一个smtp服务器来愚弄一个需要它的应用程序,但是它们不会将电子邮件发送到任何地方,它们只是显示它们。用于调试,但如果django坚持要配置一个看起来像真正邮件服务器的服务器,则可能会对您有所帮助

您可以使用表单更改密码,并在views.py中使用该功能

生成密码()


[make_password][1]

您可以使用表单更改密码,并在views.py中使用该功能

生成密码()

[make_password][1]

中有一些选项允许您更改密码,而无需发送电子邮件:

  • PasswordChangeForm:允许用户通过输入旧密码来更改密码的表单
  • SetPasswordForm:一种允许用户在不输入旧密码的情况下更改设置密码的表单
您可以在视图中实现其中一个选项来更改用户密码。

中有一些选项允许您更改密码,而无需发送电子邮件:

  • PasswordChangeForm:允许用户通过输入旧密码来更改密码的表单
  • SetPasswordForm:一种允许用户在不输入旧密码的情况下更改设置密码的表单

您可以在视图中实现其中一个,以更改用户密码。

谢谢,您已经找到了所述的解决方案。我将你的建议作为答案。谢谢,已经找到了你告诉我的解决方案。我把你的建议作为答案。
if passwordForm.is_valid():
                password = passwordForm.cleaned_data['password']
                request.user.password = make_password(password)
                request.user.save()