正如 Aleksander Gordienko 指出的那样,手动包括每个身份验证视图并更改模板名称似乎是最好的解决方案。为了节省您输入和手动提取身份验证视图名称的时间,以下是 url 模式,其中模板存储在其原始名称下,但在目录 project/myapp/templates/myapp/registration/ 中。
from django.contrib.auth import views as auth_views
urlpatterns = [
url(r'^accounts/login/$', auth_views.login,
{'template_name': 'myapp/registration/login.html'}, name='login'),
url(r'^accounts/logout/$', auth_views.logout,
{'template_name': 'myapp/registration/logout.html'}, name='logout'),
url(r'^accounts/password_change/$', auth_views.password_change,
{'template_name': 'myapp/registration/password_change_form.html',
'post_change_redirect': '/accounts/password_change/done/'},
name='password_change'),
url(r'^accounts/password_change/done/$', auth_views.password_change_done,
{'template_name': 'myapp/registration/password_change_done.html'},
name='password_change_done'),
url(r'^accounts/password_reset/$', auth_views.password_reset,
{'template_name': 'myapp/registration/password_reset_form.html'},
name='password_reset'),
url(r'^accounts/password_reset/done/$', auth_views.password_reset_done,
{'template_name': 'myapp/registration/password_reset_done.html'},
name='password_reset_done'),
url(r'^accounts/reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
auth_views.password_reset_confirm,
{'template_name': 'myapp/registration/password_reset_confirm.html'},
name='password_reset_confirm'),
url(r'^accounts/reset/done/$', auth_views.password_reset_complete,
{'template_name': 'myapp/registration/password_reset_complete.html'},
name='password_reset_complete'),
...,
]