当我使用不带参数的django.contrib.auth.views.password_reset_confirm时,它是有效的,并且我可以毫无问题地呈现模板,当添加uidb36和token参数时,它会失败。
呈现时捕获令牌:找不到具有参数'()‘和关键字参数'{'uidb36':'111',’NoReverseMatch‘:’1111111111111‘}的令牌的反向。
发布于 2011-01-26 13:43:28
很可能是你的urls.py出了问题。您需要设置正确的模式来获取作为uidb36参数传递的URL值和TOKE值。如果不是,它将抛出一个类似于您上面看到的错误。
类似于:
(r'^reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm', {'template_name' : 'registration/password_reset.html', 'post_reset_redirect': '/logout/' })
注册/密码_重置.html-是我的自定义模板
注销-是我的自定义注销操作
发布于 2012-05-22 19:30:20
我在Django 1.3中遇到了这个问题,并且浪费了很多时间,因为这个错误可能会掩盖一些潜在的问题。
我需要将这个添加到重置电子邮件模板的顶部:
{% load url from future %}
此外,Django文档中的示例与示例url不匹配:
{{ protocol}}://{{ domain }}{% url 'auth_password_reset_confirm' uidb36=uid token=token %}
因此,我不得不将上面的auth_password_reset_confirm
更改为password_reset_confirm
。
发布于 2014-02-13 01:41:14
如果您使用的是Django 1.6+,并且遇到类似的情况,那么您可能需要在您的模板和urls中将uidb36更新为uidb64。
示例url:url(r'^password/reset/confirm/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$', auth_views.password_reset_confirm
并在模板中重置链接:
{{ protocol}}://{{ domain }}{% url 'django.contrib.auth.views.password_reset_confirm' uidb64=uid token=token %}
https://stackoverflow.com/questions/4790838
复制相似问题