django密码重置NoReverseMatch错误 [英] django password reset NoReverseMatch error

查看:117
本文介绍了django密码重置NoReverseMatch错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发Django应用,但无法设置重置密码.我收到以下错误:

I'm developing a Django app and I'm having trouble setting up reset password. I'm getting the following error:

带有参数'()'和关键字的'password_reset_confirm'的反向 参数'{​​u'uidb64':'MQ',u'token':u'49v-cabad3fe98f5d9f64377'}' 未找到.尝试了0个模式:

Reverse for 'password_reset_confirm' with arguments '()' and keyword arguments '{u'uidb64': 'MQ', u'token': u'49v-cabad3fe98f5d9f64377'}' not found. 0 pattern(s) tried:

这出现在我的password_reset_email.html文件中,该文件是:

This is coming in my password_reset_email.html file which is:

Someone asked for password reset for email {{ email }}. Follow the link below:
{{ protocol}}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}

我在urls.py中有以下内容

I have the following in urls.py

(r'^registration/password_reset_confirm', 'django.contrib.auth.views.password_reset_confirm',
    {'template_name' : 'coursework/password_reset_confirm.html',
     'set_password_form' : SetPasswordForm,
     'post_reset_redirect' : 'coursework.views.list_comments'}),
(r'^registration/password_reset_done', 'django.contrib.auth.views.password_reset_done',
    {'template_name' : 'coursework/index.html'}),
(r'^registration/password_reset', 'django.contrib.auth.views.password_reset',
    {'password_reset_form' : PasswordResetForm,
     'template_name' : 'coursework/reset_password.html',
     'email_template_name' : 'coursework/password_reset_email.html',
     'subject_template_name' :'coursework/password_reset_subject.txt',
     'post_reset_redirect' : 'coursework.views.list_comments'}),

很明显,我在做些愚蠢的事,但我无法解决.

Clearly I'm doing something daft but I cannot work it out.

添加了堆栈跟踪

Environment:


Request Method: POST
Request URL: http://localhost:23080/registration/password_reset

Django Version: 1.9
Python Version: 2.7.11
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'coursework')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware')



Traceback:

File "C:\FCA\lib\django\core\handlers\base.py" in get_response
  134.                 resolver_match = resolver.resolve(request.path_info)

File "C:\FCA\lib\django\core\urlresolvers.py" in resolve
  374.             for pattern in self.url_patterns:

File "C:\FCA\lib\django\utils\functional.py" in __get__
  33.         res = instance.__dict__[self.name] = self.func(instance)

File "C:\FCA\lib\django\core\urlresolvers.py" in url_patterns
  417.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)

File "C:\FCA\lib\django\utils\functional.py" in __get__
  33.         res = instance.__dict__[self.name] = self.func(instance)

File "C:\FCA\lib\django\core\urlresolvers.py" in urlconf_module
  410.             return import_module(self.urlconf_name)

File "C:\Python27\lib\importlib\__init__.py" in import_module
  37.     __import__(name)

Exception Type: SyntaxError at /registration/password_reset
Exception Value: invalid syntax (urls.py, line 24)

推荐答案

您的模式不接受uidb64token参数.更改为:

Your pattern does not accept uidb64 and token arguments. Change it to:

(r'^registration/password_reset_confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', 'django.contrib.auth.views.password_reset_confirm',
 {'template_name' : 'coursework/password_reset_confirm.html',
  'set_password_form' : SetPasswordForm,
  'post_reset_redirect' : 'coursework.views.list_comments'},
 name='password_reset_confirm'),

这篇关于django密码重置NoReverseMatch错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆