Сброс пароля Django - исключение DoesNotExist - PullRequest
2 голосов
/ 27 мая 2011

Страница password_reset моего сайта Django вызывает исключение DoesNotExist после ввода адреса электронной почты и нажатия кнопки.

Четыре URL-адреса, необходимые для функции сброса пароля, находятся в (основном проекте) urls.py как:

(r'^password_reset/$', 'appname.views.cust_password_reset'),
(r'^password_reset/done/', 'appname.views.cust_password_reset_done'),
(r'^reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 'appname.views.cust_password_reset_confirm'),
(r'^reset/done/$', 'appname.views.cust_password_reset_complete')

Ниже приведен код, используемый для связанных представлений:

def cust_password_reset(request):
    return password_reset(request, post_reset_redirect='password_reset/done',template_name='registration/password_reset_done.html')

def cust_password_reset_done(request):
    return password_reset_done(request,  template_name='registration/password_reset_done.html')

def cust_password_reset_confirm(request, uidb36=None, token=None):
    return password_reset_confirm(request, uidb36=uidb36, token=token,
    template_name='registration/password_reset_confirm.html',
    post_reset_redirect='registration/reset/done/')

def cust_password_reset_complete(request):
    return password_reset_complete(request,
    template_name='registration/password_reset_complete.html')

Адрес электронной почты правильно проверен на действительность, но перенаправление на password_reset / done не происходит. URL остается как password_reset, но вызывает исключение DoesNotExist со значением «Запрос на сопоставление сайтов не существует».

URL-адреса и шаблоны, кажется, работают должным образом, и password_reset / done отображается правильно при доступе вручную.
Упомянутые шаблоны являются точными копиями оригинальных шаблонов Django с добавлением только верхнего / нижнего колонтитула. Сброс пароля без использования пользовательских представлений / шаблонов приводит к той же ошибке.

Буду очень признателен за любые идеи относительно того, что может быть причиной этого.

1 Ответ

2 голосов
/ 27 мая 2011

Эта ошибка «Запрос на сопоставление сайтов не существует» означает, что SITE_ID в settings.py не совпадает с фактическим Site объектом в базе данных.Проверьте атрибут id для своего сайта и убедитесь, что он совпадает с SITE_ID.

...