2010-01-23 62 views
1

我正在写一个简单的站点来显示一些数据的统计信息,并且我有一个名为“stats”的应用程序,我想为(stats/templates/stats中的地方)编写默认模板,但是我'喜欢这些可以覆盖管理应用程序的模板相同的方式。 IE:如果我将stats/view.html放在我的项目的templates目录中,它将被使用,而不是我的apps目录中的。我似乎无法弄清楚如何做到这一点。我怎样才能让Django在打开应用程序之前搜索项目的TEMPLATE_DIRS?在django中启用应用程序模板的重写?

编辑:发现问题,看到有人的教程使用OS模块设置模板目录。他们有:

TEMPLATE_DIRS = (
    os.path.join(os.path.basename(__file__), 'templates') 
) 

这应该是:

TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(__file__), 'templates') 
) 

回答

2

你需要把filesystem装载机以前app_directories装载机在TEMPLATE_LOADERS设置。

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.load_template_source', 
    'django.template.loaders.app_directories.load_template_source' 
) 

TEMPLATE_LOADERS的顺序问题。

+0

这看起来像django为我生成的,filesystem.load_template_source,然后app_directories.load_template_source。 现在我已经得到了ic/templates/stats/view.html和ic/stats/templates/stats/view.html,并且它仍然在应用程序的模板目录中进行渲染。 – 2010-01-23 19:53:29

+0

这并不能解决问题。 – dragoon 2012-12-13 16:16:37

相关问题