Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django错误:与#x27相反;密码重置确认';没有找到任何参数_Django - Fatal编程技术网

Django错误:与#x27相反;密码重置确认';没有找到任何参数

Django错误:与#x27相反;密码重置确认';没有找到任何参数,django,Django,我正在使用Django 1.11构建一个用户帐户应用程序。我的帐户应用程序的URL代码如下所示。我还有一个模板/注册文件夹和几个模板文件: 输入电子邮件地址后,我收到带有以下链接的电子邮件: 我单击上面的链接,浏览器将重定向到此链接: 并且错误提示: NoReverseMatch at/account/password reset/confirm/MQ/set password/ 反向输入“密码重置确认”,未找到任何参数。尝试了1个模式:[“帐户/密码重置/确认/(?P[-\w]+)/(?

我正在使用Django 1.11构建一个用户帐户应用程序。我的帐户应用程序的URL代码如下所示。我还有一个模板/注册文件夹和几个模板文件:

输入电子邮件地址后,我收到带有以下链接的电子邮件:

我单击上面的链接,浏览器将重定向到此链接:

并且错误提示:

NoReverseMatch at/account/password reset/confirm/MQ/set password/

反向输入“密码重置确认”,未找到任何参数。尝试了1个模式:[“帐户/密码重置/确认/(?P[-\w]+)/(?P[-\w]+)/$”] 请求方法:获取 请求URL: Django版本:1.11.7 异常类型:NoReverseMatch 异常值:
反向输入“密码重置确认”,未找到任何参数。尝试了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"),