我有点困惑,因为当我使用泛型ListView类时,Django在"appname/templates“文件夹中查找”appname/objectnamelist.html“。这将导致:
appname/templates/appname/objectname_list.html如果我提供"template_name",它就不再需要templates文件夹中的子文件夹了。
为什么它不能像以前在1.3中那样在"templates“文件夹中找到objectname_list.html?是我配置错了什么,还是他们也改变了我应该放模板的位置?在1.3版本中,我习惯于将模板html文件直接放在“appname/ template”中,而不是使用子文件夹。
对我来说,使用另一个带有应用程序名称的子文件夹是没有意义的,因为templates文件夹已经在其中。还是我错过了一些有用的东西?
我在发行说明中找不到任何关于它的东西。
发布于 2012-04-07 20:47:53
我不认为这是1.4特定的。如果希望模板在子文件夹中,请指定template_name = 'subfolde/template.html'
关于模板目录,来自docs
...对于INSTALLED_APPS中的每个应用程序,加载器都会查找模板子目录。如果该目录存在,Django将在其中查找模板。
所以实际的目录是:
projectname/appname/templates/appname/objectname_list.html
^^^ ^^^这有助于您将所有内容保留在app文件夹中,并且不需要您配置任何内容。
这也意味着,如果你有foo,bar和baz应用程序,你仍然可以在其中一个应用程序下有一个templates目录:
myproj/foo/templates/foo/...
myproj/foo/templates/bar/...
myproj/foo/templates/baz/...https://stackoverflow.com/questions/10054439
复制相似问题