2016-01-21 3 views
0

Это похоже на обычную проблему, с которой сталкиваются люди, но я не могу понять это для жизни меня. Я создал URL:Django NoReverseMatch на счетах/password_reset/

from django.conf.urls import url 
from . import views 
from django.contrib.auth import views as auth_views 

urlpatterns = [ 
    url(r'^login/$', views.login_view, name='login'), 
    url(r'^password_reset/$', auth_views.password_reset, name='password_reset'), 
    url(r'^password_reset_done/$', auth_views.password_reset_done, name='password_reset_done'), 
    url(r'^auth/$', views.login_auth, name='login_auth'), 
    url(r'^register/$', views.register_user, name='register'), 
    url(r'^logout/$', views.logout_user, name='logout'), 
] 

Я пытаюсь сделать ссылку на password_reset URL:

<a href="/accounts/password_reset/">Forgot Password?</a> 

Но это дает мне следующую ошибку:

NoReverseMatch at /accounts/password_reset/ Reverse for 'password_reset_done' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

Это кажется действительно простой бит кода, но он не работает. Я могу успешно позвонить password_reset_done, используя этот точный метод, но по какой-то причине он не работает с password_reset.

+0

Попробуйте 'URL ('^ password_reset/$', auth_views.password_reset, имя = 'password_reset'),' 'отметить $ 'в вашем регулярном выражении URL. – Gocht

+0

Не повезло изменить это (хотя, вы правы, $ должно быть там) – 123

+0

Я считаю, что вы вызываете этот url с использованием '' password_reset_done'' как имя, и оно должно быть '' password_reset'' – Gocht

ответ

0

password_reset линия должна выглядеть следующим образом:

url(r'^password_reset/$', auth_views.password_reset, {'post_reset_redirect' : '/accounts/password_reset_done/'}, name='password_reset'),