我正在使用Django 1.11构建一个用户帐户应用程序。我的帐户应用程序的urls为代码1,如下所示。我还有一个模板/注册文件夹和几个模板文件:在这里输入图像描述
输入电子邮件地址并收到带有以下链接的电子邮件后:http://127.0.0.1:8000/account/password-reset/confirm/MQ/4ra-66d3672f1d340589fbf9/
我点击上面的链接,浏览器重定向到这个链接:http://127.0.0.1:8000/account/password-reset/confirm/MQ/set-password/
错误提示:
/account/password-reset/confirm/MQ/set-password/的NoReverseMatch
在没有找到参数的情况下,反向表示“password_reset_confirm”。1模式尝试:['account/password-reset/confirm/(?P-\w+)/(?P-\w+)/$']请求方法: GET请求URL:http://127.0.0.1:8000/account/password-reset/confirm/MQ/set-password/ Django版本: 1.11.7异常类型: NoReverseMatch异常值:
在没有找到参数的情况下,反向表示“password_reset_confirm”。尝试了1种模式:['account/password-reset/confirm/(?P-\w+)/(?P-\w+)/$']
请帮我解决这个问题。看来,在我单击链接后,Django无法在password_reset_confirm.html /注册文件夹下呈现该模板。
代码1:
# restore password urls
url(r'^password-reset/$', auth_views.PasswordResetView.as_view(), name='password_reset'),
url(r'^password-reset/done/$', auth_views.PasswordResetDoneView.as_view(), name='password_reset_done'),
url(r'^password-reset/confirm/(?P<uidb64>[-\w]+)/(?P<token>[-\w]+)/$',
auth_views.PasswordResetConfirmView.as_view(), name='password_reset_confirm'),
url(r'^password-reset/complete/$',
auth_views.PasswordResetCompleteView.as_view(), name='password_reset_complete'),发布于 2019-03-23 14:03:02
转到密码重置,确认模板文件,然后删除表单上的操作,如下所示
<form method="post"> </form> 而不是这样:
<form action={% url 'your template file name'%} method="post"></form>发布于 2017-11-19 08:47:59
Django的错误消息是您的代码试图将password_reset_confirm反转到它的url,但是您没有提供url模式所需的uid64和token参数。您应该找到执行reverse()的代码部分,并更新它以提供参数:
reverse('password_reset_confirm',args=(uid64, token))发布于 2018-04-26 04:56:20
urls.py:
path('accounts/reset_password_confirm/<uidb64>/<token>/', PasswordResetConfirmView.as_view(), name='reset_password_confirm'),改变上面的URL对我有效。虽然,我仍然没有收到电子邮件。错误消失了。
https://stackoverflow.com/questions/47374766
复制相似问题