Django内置的密码重置功能,我的URL出了什么问题?

5

似乎每个人都指向这个简易插件密码重置指南:

http://garmoncheg.blogspot.com.au/2012/07/django-resetting-passwords-with.html

所以从我所读的来看,如果您想要它正常运行,则只需要定义4个URL即可:

urlpatterns = patterns('',
 . . . 
    url(r'^user/password/reset/$', 'django.contrib.auth.views.password_reset', {'post_reset_redirect' : '/user/password/reset/done/'}, name="password_reset"),
        (r'^user/password/reset/done/$', 'django.contrib.auth.views.password_reset_done'),
        (r'^user/password/reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm', {'post_reset_redirect' : '/user/password/done/'}),
        (r'^user/password/done/$', 'django.contrib.auth.views.password_reset_complete'),
 . . .
)

这似乎并没有起作用,因为我仍然遇到了臭名昭著的

/user/password/reset/ 上的NoReverseMatch错误

并且出现了以下情况:

Reverse for 'password_reset_confirm' with arguments '()' and keyword arguments '{u'uidb64': 'NA', u'token': u'3ps-749165b2b39d4168f97f'}' not found. 1 pattern(s) tried: ['user/password/reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$']

我在顶部放了一个链接,是否有一些指南已经过时了?我是否应该在urls.py文件中导入任何内容?


你正在调用哪个URL? 它在哪个阶段失败了? - Gabriel Amram
1个回答

4

您的URL模式使用uidb36,但是您的反向调用正在寻找uidb64。有关1.6版本中此更改的更多信息,请参见文档


谢谢!问题已经解决了。但这是最后一根稻草了。我再也不会为Django开发了,转而使用Pyraminds。他们一直在废弃所有东西,坚持使用这种语言有什么意义呢?每次微小的更新都会让我的旧代码变得过时,让我感觉像个新手一样。 - user1504605

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接