Django:密码重置时没有反向匹配[重复]
Posted
技术标签:
【中文标题】Django:密码重置时没有反向匹配[重复]【英文标题】:Django : No Reverse Match on password reset [duplicate] 【发布时间】:2017-07-20 10:40:22 【问题描述】:我正在使用自定义模板在 Django 中开发密码重置功能。 但是当我输入 mail:id 并单击重置密码时,我面临“无反向匹配错误”。请有人帮助我,我知道这是一个老问题,我已经按照其他答案尝试解决但无法想出解决方案。请在下面找到代码并帮助我解决此问题。
urls.py:
from django.conf.urls import url,include
from django.contrib import admin
from django.contrib.auth.views import password_reset,password_reset_done,password_reset_confirm,password_reset_complete
from surveysite.views import home,about,login,loggedin,loggedout
urlpatterns = [
url(r'^$', home, name='home'),
url(r'^about/$',about, name='about'),
url(r'^accounts/', include('registration.backends.default.urls')),
url(r'^accounts/login/$', login, name='login'),
url(r'^accounts/loggedin/$',loggedin, name='loggedin'),
url(r'^accounts/logout/$', loggedout, name='logout'),
url(r'^accounts/password_reset/$', password_reset,
'post_reset_redirect' : '/accounts/password_reset/mailed/',
name="password_reset"),
url(r'^accounts/password_reset/mailed/$',password_reset_done),
url(r'^accounts/password_reset/(?P<uidb36>[0-9A-Za-z]1,13)-(?P<token>[0-9A-Za-z]1,13-[0-9A-Za-z]1,20)/$',password_reset_confirm,
'post_reset_redirect' : '/accounts/password_reset/complete/',name="password_reset_confirm"),
url(r'^accounts/password_reset/complete/$',password_reset_complete),
url(r'^admin/', admin.site.urls),
]
Password_reset_email
% autoescape off %
You're receiving this email because you requested a password reset for your user account at site_name .
Please go to the following page and choose a new password:
% block reset_link %
protocol :// domain % url 'django.contrib.auth.views.password_reset_confirm' uidb36=uid token=token %
% endblock %
Your username, in case you've forgotten: user.get_username
Thanks for using our site!
The site_name team
% endautoescape %
错误堆栈跟踪
NoReverseMatch at /accounts/password_reset/
Reverse for 'django.contrib.auth.views.password_reset_confirm' with arguments '()' and keyword arguments 'u'uidb36': 'MQ', u'token': u'4jz-530973903a3b600e2a97'' not found. 0 pattern(s) tried: []
Request Method: POST
Request URL: http://localhost:8000/accounts/password_reset/
Django Version: 1.10.5
Exception Type: NoReverseMatch
Exception Value:
Reverse for 'django.contrib.auth.views.password_reset_confirm' with arguments '()' and keyword arguments 'u'uidb36': 'MQ', u'token': u'4jz-530973903a3b600e2a97'' not found. 0 pattern(s) tried: []
Exception Location: C:\Python27\lib\site-packages\django\urls\resolvers.py in _reverse_with_prefix, line 392
Python Executable: C:\Python27\python.exe
Python Version: 2.7.13
Python Path:
['G:\\Manoj\\Software Engineering-Yui Man lee\\Django_Project\\surveysite',
'C:\\Python27',
'C:\\Python27\\Tools\\Scripts',
'G:\\Manoj\\Software Engineering-Yui Man lee\\Django_Project\\surveysite',
'C:\\WINDOWS\\SYSTEM32\\python27.zip',
'C:\\Python27\\DLLs',
'C:\\Python27\\lib',
'C:\\Python27\\lib\\plat-win',
'C:\\Python27\\lib\\lib-tk',
'C:\\Python27\\lib\\site-packages',
'C:\\Python27\\lib\\site-packages\\PIL']
In template G:\Manoj\Software Engineering-Yui Man lee\Django_Project\surveysite\templates\registration\password_reset_email.html, error at line 6
我尝试了以下链接中的解决方案,但找不到解决方案。
NoReverseMatch on password_Reset_confirm
https://github.com/bread-and-pepper/django-userena/issues/380
django password reset NoReverseMatch error
我正在学习来自http://code.techandstartup.com/django/reset-password/ ==> 自定义模板的教程。
【问题讨论】:
感谢您的回答,它正在与 Chrome 浏览器一起使用,但昨天我正在使用 Firefox,但它无法正常工作,可能是我的浏览器设置问题。 【参考方案1】:您只需要引用您尝试匹配的 url 模式的名称,而不是引用视图
% url 'password_reset_confirm' uidb36=uid token=token %
【讨论】:
以上是关于Django:密码重置时没有反向匹配[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Django 2.1.2 密码重置身份验证视图:找不到“password_reset_confirm”的反向