2016-06-07 88 views
0

我用Django的auth_views.password_change来允许用户更改他们的密码。它使用自定义模板,它运作良好,但我遇到的问题是,它重定向到Django的密码更改成功管理模板,而不是我声明的自定义模板。password_change_done在Django中没有使用自定义模板

urls.py

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

from . import views 

app_name = 'users' 

urlpatterns = [ 
    url(r'^$', views.IndexView.as_view(), name='index'), 
    url(r'^add-user/$', views.CreateUserView.as_view(), name='add-user'), 
    url(r'^search/$', views.UserSearchView.as_view(), name='search-users'), 
    url(r'^login/$', views.LoginView.as_view(), name='login'), 
    url(r'^logout/$', views.LogoutView.as_view(), name='logout'), 
    url(r'^(?P<pk>\d+)/settings/update$', views.UpdateAccountView.as_view(), name='update-account'), 
    url(r'^settings/change/$', auth_views.password_change, {'template_name': 'users/forms/change-password.html'}, 
    name='change-password'), 
    url(r'^settings/change-done/$', auth_views.password_change_done, 
    {'template_name': 'users/forms/change-password-done.html'}, name='change-password-done'), 
    url(r'^(?P<pk>\d+)/delete-user/$', views.DeleteUserView.as_view(), name='delete-user'), 

任何想法我错过了什么?

回答

1

你应该使用:

url(r'^settings/change/$', auth_views.password_change, {'template_name': 'users/forms/change-password.html',post_change_redirect:'change-password-done'},name='change-password'),

没有post_change_redirect默认模板会在这种情况下被加载。

+0

我将它作为参数放入我的更改密码url中吗? – nastyn8

+0

@ nastyn8是的,请参阅更新... – trantu

+0

我做到了,但现在我有一个TypeError:url()获得了多个值为参数'name' – nastyn8

0

INSTALLED_APPS确保在admin之前指定了具有自定义模板的应用。

Django按顺序搜索模板。