django auth:密码更改模板定制

时间:2015-01-18 13:38:19

标签: python django templates

我想将django auth的密码更改模板主题添加到我的网站。问题是django正在看模板的django/contrib/admin/templates/registration/版本,而不是我制作精美的myapp/template/registration/password*.html

This海报被告知在settings.py中调整应用程序顺序,这对我的口味有点脆弱。我认为this海报可能得到了一个合理的答案,但如果是这样,我还没有完全理解它。

所以我做的是在我的urls.py文件中添加一堆非DRY cruft,从auth_urls.py复制:

# Provide explicit templates where I've provided them, shadowing the URL's
# that registration.backends.defaults.urls will provide.
url(r'^accounts/password/change/$',
    auth_views.password_change,
    {'post_change_redirect': reverse_lazy('auth_password_change_done'),
     'template_name': 'registration/password/change_form.html' },
    name='auth_password_change'),
# ...
url(r'^accounts/', include('registration.backends.default.urls')),

这很有效,但让我感到很难过。当然django鼓励更清洁的东西。有什么指针吗?

(Fwiw,django 1.7和python 3.4.2。)

1 个答案:

答案 0 :(得分:3)

将此模板放入项目的templates目录中,并将以下代码添加到settings.py

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, 'templates'),
)

默认django.template.loaders.filesystem.Loader位于django.template.loaders.app_directories.Loader TEMPLATE_LOADERS之前,因此项目的templates目录优先于应用templates