在Django 1.4中放置模板的位置?

时间:2012-04-07 12:22:14

标签: python django frameworks

我有点困惑,因为当我使用通用ListView类时,Django正在“appname / templates”文件夹中查找“appname / objectname_list.html”。这导致:

appname/templates/appname/objectname_list.html

如果我提供“template_name”,则不再需要templates文件夹中的子文件夹。

为什么不在1.3之前的“templates”文件夹中找到objectname_list.html?我是否配置了错误或者他们是否更改了我应该放置模板的地方?在1.3中,我曾经将模板html文件直接放在“appname / templates”中,而不是使用子文件夹。

对我来说,使用另一个带有应用程序名称的子文件夹是没有意义的,其中templates文件夹已经存在。或者我错过了一些有用的东西?

我在发行说明中找不到任何相关内容。

1 个答案:

答案 0 :(得分:5)

我认为这不是1.4具体的。如果您希望将模板放在子文件夹中,请指定template_name = 'subfolde/template.html'

关于模板目录,来自docs

  

...对于每个应用程序   INSTALLED_APPS,加载器查找模板子目录。如果   目录存在,Django在那里寻找模板。

所以实际的目录是:

projectname/appname/templates/appname/objectname_list.html
            ^^^               ^^^

这有助于您将所有内容保存在app文件夹中,并且不需要您配置任何内容,

这也意味着如果你有应用foobarbaz,你仍然可以在其中一个应用下拥有一个templates目录:

myproj/foo/templates/foo/...
myproj/foo/templates/bar/...
myproj/foo/templates/baz/...