我有一个问题,让password_Reset_confirm位工作。
url:
(r'^password_reset/$', 'django.contrib.auth.views.password_reset'),
(r'^password_reset_done/$', 'django.contrib.auth.views.password_reset_done'),
(r'^password_reset_confirm/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm'),password_reset_email.html,,包括以下内容:
{% load url from future %}
Someone asked for password reset for email {{ email }}. Follow the link below:
{{ protocol}}://{{ domain }}{% url 'password_reset_confirm' uidb36=uid token=token %}但是,在提交了重新设置密码的电子邮件之后,我得到了如下错误消息:
NoReverseMatch at /password_reset/ password_reset_confirm()和关键字参数‘{’uidb36 36‘:'1','token':’38D-b5ec0b2a2321f522f954‘}的password_reset_confirm。
我想,既然这是一个视图中使用的构建,我就不用再做其他的事情了?
谢谢你的建议,
更新:
在使用完完整的路径之后,它似乎可以工作了。然而,它发送了两封电子邮件:每一封都有一个不同的链接。为什么会这样呢?在哪里设置{域}?谢谢
Follow the link below:
http://example.com/password_reset_confirm/1-38d-b5ec0b2a2321f522f954/
Follow the link below:
http://example.com/password_reset_confirm/2-38d-18482e1f129c84b9c2bc/更新2
我想通了。以防别人有这个问题。您需要将您的域名设置为应用程序的站点:
在Admin或django控制台中:
>>> my_site = Site.objects.get(pk=1)
>>> my_site.domain = 'somedomain.com'
>>> my_site.name = 'Some Domain'
>>> my_site.save()另一个问题,为什么你可以得到两封电子邮件时,重置它,因为你可以有多个用户名与相同的电子邮件地址。挺傻的。这是我要解决的下一件事。
发布于 2012-06-22 17:17:21
当使用url模板标记时,您需要指定视图,而不是url本身。由于在您的'django.contrib.auth.views.password_reset_confirm'中使用的是URLConf,所以您应该这样使用它:
{% url 'django.contrib.auth.views.password_reset_confirm' ... %}有关Django的url文档中的内置模板标记和过滤器模板标记的更多信息。
发布于 2014-04-30 10:03:35
若要将url传递给url模板标记,可以将name指定给urls.py中的url。
url(r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
views.password_reset_confirm, name='password_reset_confirm'),然后,您可以使用带有url名称的标记。
{% url 'password_reset_confirm' uidb64=uid token=token %}发布于 2017-01-20 14:14:46
https://stackoverflow.com/questions/11143393
复制相似问题