我想将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。)
答案 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
。