4

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

appname/templates/appname/objectname_list.html

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

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

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

我在发行说明中找不到任何关于它的信息。

4

1 回答 1

5

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

关于模板目录,来自文档

... 对于 INSTALLED_APPS 中的每个应用程序,加载程序会查找模板子目录。如果该目录存在,Django 会在其中查找模板。

所以实际的目录是:

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

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

这也意味着,如果您有应用程序foobar并且baz,您仍然可以templates在其中一个应用程序下拥有一个目录:

myproj/foo/templates/foo/...
myproj/foo/templates/bar/...
myproj/foo/templates/baz/...
于 2012-04-07T12:47:53.153 回答