为什么Django没有使用我的registration / reset_password_done.html模板?

时间:2011-08-09 14:59:59

标签: django templates view django-admin authentication

我有一个urls.py:

from django.contrib.auth.views import (password_reset, password_reset_done, 
                                       password_change, password_change_done)

 [...]
 urlpatterns += i18n_patterns('',   
        url(r'^accounts/password_reset/$', password_reset, 
             {'template_name': 'registration/password_reset.html',
              "post_reset_redirect": '/accounts/password_reset_done/' },
             name='reset-password'),
        url(r'^accounts/password_reset_done/$', password_reset_done, 
             {'template_name': 'registration/password_reset_done.html'},
             name="reset-password-done"))

app / templates / registration中的关联模板。

password_reset会显示我的模板,但password_reset_done不显示(它会显示具有相同名称的管理模板)。在其中运行pdb确认传递了正确的模板名称。我发现了模板的名称。

2 个答案:

答案 0 :(得分:1)

如何将password_reset_done.html的名称更改为,例如,password_reset_done2.html并相应地更改urls.py?此管理模板与管理模板之间是否仍存在冲突?

此外,它可能与urlpatterns + = i18n_patterns ...代码的位置有关。它是在默认管理员网址之前还是之后发生的:

(r'^admin/', include(<location of default admin urls>)),

..或者看起来像什么。也许他们会覆盖您的自定义网址?

答案 1 :(得分:0)

我终于找到了答案:

app模板加载器将呈现他找到的第一个与名称匹配的模板,此顺序由您在INSTALLED_APPS中的应用顺序决定。

只需在INSTALLED_APPS开头添加包含我的模板的应用名称即可解决问题。