Почему я не могу реализовать функцию забытого пароля в Django? - PullRequest
1 голос
/ 28 января 2011
Reverse for 'django.contrib.auth.views.password_reset_confirm' with arguments '()' and keyword arguments '{'uidb36': '1', 'token': '2u6-e139d87034d52a80c572'}' not found.

Я уже сделал это правильно:

(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),

Ответы [ 3 ]

11 голосов
/ 01 февраля 2011

Джанго сам передает аргументы; Вы должны принять их и передать их в форму сброса.

Чтобы быть действительно ясным в отношении того, что говорится в сообщении об ошибке, он ожидает URL для представления, 'django.contrib.auth.views.password_reset_confirm', и этот URL ДОЛЖЕН принимать аргументы, представленные в данном случае 'uidb36' и 'token'. Если это не так, он просто продолжает искать, пока не достигнет конца ваших URL, а затем выдает эту ошибку.

Должно работать что-то вроде следующего:

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

Лично я бы предпочел, чтобы они передавались в GET, а не в URL, но как угодно:).

1 голос
/ 28 января 2011

Вы передаете это аргументы.Ни одна из этих записей urlconf не принимает аргументов.Либо бросьте их с обратной стороны, либо добавьте их в urlconf.

0 голосов
/ 28 января 2011

Возможно, что у вас есть шаблон такого типа в файле шаблона

{% url django.contrib.auth.views.password_reset_confirm %}

попробуйте найти что-то похожее на этот пример оболочки:

find . -iname "*.html" -exec grep -iH "django.contrib.auth.views.password_reset_confirm" {} \;

Если вы найдете некоторыезатем проверьте, что никакие аргументы не «переданы»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...