有没有一种方法可以使用django内置的密码重置功能,而不需要通过电子邮件发送重置链接或没有电子邮件选项。我目前正在开发一个简单的系统,有几个用户,不需要发送电子邮件。提前感谢
jyztefdp1#
django.contrib.auth中有一些选项允许您在无需发送电子邮件的情况下更改密码:
您可以在视图中实现其中一个来更改用户密码。
2nbm6dog2#
您可以使用表单更改密码,并在views.py中使用该功能make_password()
if passwordForm.is_valid(): password = passwordForm.cleaned_data['password'] request.user.password = make_password(password) request.user.save()
字符串[make_password][1] docs.djangoproject.com/en/1.11/topics/auth/passwords/
pieyvz9o3#
我不熟悉django,但我以前在其他应用程序上工作过,任何用户都可以通过密码重置获得访问权限,即使是初始管理员。在所有这些情况下,工作方法都是相似的--重置链接是由一些URL存根加上在某个数据库表中找到的唯一键形成的。手动组装链接并使用它效果很好,尽管有一个系统使用了emailsentdate列,并且拒绝执行任何操作,除非填充该列,因此如果您使用简单的方法没有成功,请检查任何类似的操作如果你一定要有一个电子邮件服务器,确实存在一些简单的用于开发的服务器,比如smtpdev,它们的行为就像一个smtp服务器来欺骗一个需要它的应用程序,但是它们不发送电子邮件到任何地方,它们只是显示它们。用于调试,但如果django坚持要配置一个看起来像真实的的邮件服务器的话,可能会对您有所帮助
3条答案
按热度按时间jyztefdp1#
django.contrib.auth中有一些选项允许您在无需发送电子邮件的情况下更改密码:
您可以在视图中实现其中一个来更改用户密码。
2nbm6dog2#
您可以使用表单更改密码,并在views.py中使用该功能
make_password()
字符串
[make_password][1] docs.djangoproject.com/en/1.11/topics/auth/passwords/
pieyvz9o3#
我不熟悉django,但我以前在其他应用程序上工作过,任何用户都可以通过密码重置获得访问权限,即使是初始管理员。在所有这些情况下,工作方法都是相似的--重置链接是由一些URL存根加上在某个数据库表中找到的唯一键形成的。手动组装链接并使用它效果很好,尽管有一个系统使用了emailsentdate列,并且拒绝执行任何操作,除非填充该列,因此如果您使用简单的方法没有成功,请检查任何类似的操作
如果你一定要有一个电子邮件服务器,确实存在一些简单的用于开发的服务器,比如smtpdev,它们的行为就像一个smtp服务器来欺骗一个需要它的应用程序,但是它们不发送电子邮件到任何地方,它们只是显示它们。用于调试,但如果django坚持要配置一个看起来像真实的的邮件服务器的话,可能会对您有所帮助