2011-08-09 98 views
2

我有一个urls.py:为什么我的registration/reset_password_done.html模板没有被Django使用?

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")) 

而在应用/模板/登记的相关模板。

password_reset显示我的模板,但是password_reset_done没有显示(它显示了具有相同名称的管理模板)。在其中运行pdb确认传递了正确的模板名称。我tripple检查模板的名称。

+0

它使用默认模板还是说'找不到模板'? – Leopd

+0

引用自己:“显示同名的管理员模板” –

回答

0

我终于找到了答案:

的应用程序模板加载器将呈现他找到匹配的名称的第一个模板,这个顺序由INSTALLED_APPS您的应用程序的顺序确定。

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

1

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

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

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

..或者它看起来像什么。也许他们重写您的自定义网址?

+0

我在包含管理员后出现。但我之前试图加入它,但效果并不理想。 –

+0

您的解决方法奏效。我会接受你的答案,即使它不回答这个问题,因为无论如何你都是唯一的答案,并且解决了我的问题。 –

相关问题