为什么我不能实现Django的忘记密码功能?

TIM*_*MEX 1 python django

Reverse for 'django.contrib.auth.views.password_reset_confirm' with arguments '()' and keyword arguments '{'uidb36': '1', 'token': '2u6-e139d87034d52a80c572'}' not found.
Run Code Online (Sandbox Code Playgroud)

我已经正确地做了这个:

(r'^password/reset/?$',password_reset ),
(r'^password/reset/done/?$',password_reset_done ),
(r'^password/reset/confirm/?$',password_reset_confirm ),
(r'^password/reset/complete/?$',password_reset_complete),
Run Code Online (Sandbox Code Playgroud)

fri*_*rio 11

Django本身正在传递论据; 你需要接受它们并将它们传递给重置表格.

要非常清楚错误消息的内容,它需要一个视图的URL,'django.contrib.auth.views.password_reset_confirm',并且该url 必须接受所提供的参数,在本例中为'uidb36'和'令牌".如果没有,它只是继续查看,直到它到达您的网址的末尾,然后抛出此错误.

像下面这样的东西应该工作:

(r'^password/reset/confirm/(?P<uidb36>\d+)/(?P<token>[\d\w-]+)$',password_reset_confirm ),
Run Code Online (Sandbox Code Playgroud)

就个人而言,我更喜欢那些是通过GET而不是URL传递的,但无论如何:).

  • 您的URL正则表达式不起作用.uidb36是一个base36变量,是django.utils.http.int_to_base36的结果,但不是小数. (2认同)