Django错误:与#x27相反;密码重置确认';没有找到任何参数
我正在使用Django 1.11构建一个用户帐户应用程序。我的帐户应用程序的URL代码如下所示。我还有一个模板/注册文件夹和几个模板文件: 输入电子邮件地址后,我收到带有以下链接的电子邮件: 我单击上面的链接,浏览器将重定向到此链接: 并且错误提示: NoReverseMatch at/account/password reset/confirm/MQ/set password/ 反向输入“密码重置确认”,未找到任何参数。尝试了1个模式:[“帐户/密码重置/确认/(?P[-\w]+)/(?P[-\w]+)/$”] 请求方法:获取 请求URL: Django版本:1.11.7 异常类型:NoReverseMatch 异常值:Django错误:与#x27相反;密码重置确认';没有找到任何参数,django,Django,我正在使用Django 1.11构建一个用户帐户应用程序。我的帐户应用程序的URL代码如下所示。我还有一个模板/注册文件夹和几个模板文件: 输入电子邮件地址后,我收到带有以下链接的电子邮件: 我单击上面的链接,浏览器将重定向到此链接: 并且错误提示: NoReverseMatch at/account/password reset/confirm/MQ/set password/ 反向输入“密码重置确认”,未找到任何参数。尝试了1个模式:[“帐户/密码重置/确认/(?P[-\w]+)/(?
反向输入“密码重置确认”,未找到任何参数。尝试了1个模式:[“帐户/密码重置/确认/(?P[-\w]+)/(?P[-\w]+)/$”] 请帮我解决这个问题。似乎在我单击链接后,Django无法在templates/registration文件夹下呈现密码\u reset\u 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'),
#还原密码URL
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[-\w]+)/(?P[-\w]+)/$),
auth_views.PasswordResetConfirmView.as_view(),name='password_reset_confirm'),
url(r“^password reset/complete/$”,
auth_views.PasswordResetCompleteView.as_view(),name='password_reset_complete',
Django的错误消息是,您的代码试图将密码重置\u确认
反向到其url,但您没有提供url模式所需的uid64
和令牌
参数。您应该找到执行reverse()
的代码部分,并对其进行更新以提供参数:
reverse('password_reset_confirm',args=(uid64, token))
URL.py:
path('accounts/reset_password_confirm/<uidb64>/<token>/', PasswordResetConfirmView.as_view(), name='reset_password_confirm'),
path('accounts/reset\u password\u confirm//',PasswordResetConfirmView.as\u view(),name='reset\u password\u confirm'),
如上所述更改URL对我有效。尽管如此,我仍然没有收到电子邮件。错误消失。转到密码重置确认模板文件,取消表单上的操作,如下所示
<form method="post"> </form>
与此相反:
<form action={% url 'your template file name'%} method="post"></form>
路径('users/password\u reset/',PasswordResetView.as\u视图(
模板\u name='commons/password\u reset\u form.html',
主题\u模板\u name='commons/password\u reset\u subject.txt',
email\u template\u name='commons/password\u reset\u email.html',
成功,name=“密码重置”),
路径('users/password\u reset/done/',
PasswordResetDoneView.as\u视图(
模板(name=“commons/password\u reset\u done.html”),name=“password\u reset\u done”),
路径('users/reset//',PasswordResetConfirmView.as\u视图(
模板\u name='commons/password\u reset\u confirm.html',
success_url='/users/reset/done/'),name=“password_reset\u confirm”),
路径('users/reset/done/',
PasswordResetCompleteView.as_view(template\u name='commons/password\u reset\u complete.html'),
name=“密码重置完成”),
我已经为Django可以将名称反转为url的url设置了名称“password\u reset\u confirm”。这对我很有帮助,但我需要在main url.py中添加此路由,以便不使用accounts应用程序
path('users/password_reset/', PasswordResetView.as_view(
template_name='commons/password_reset_form.html',
subject_template_name='commons/password_reset_subject.txt',
email_template_name='commons/password_reset_email.html',
success_url='done',), name="password_reset"),
path('users/password_reset/done/',
PasswordResetDoneView.as_view(
template_name='commons/password_reset_done.html'),name="password_reset_done"),
path('users/reset/<uidb64>/<token>/', PasswordResetConfirmView.as_view(
template_name='commons/password_reset_confirm.html',
success_url='/users/reset/done/'),name="password_reset_confirm"),
path('users/reset/done/',
PasswordResetCompleteView.as_view(template_name='commons/password_reset_complete.html'),
name="password_reset_complete"),