我有麻烦,包括在一个模板,就这样。我在文档中找不到包含的.html (我假设它与模板相同?),我把{% include "xy.html" %}放在一个文件中,但是看起来没有找到xy.html。我也找不到任何返回的错误。xy.html与其调用文件位于同一个目录中,用Django的话说,该文件位于一个模板文件夹中。
我没有显示错误信息,只是没有显示包含的文件。
我应该把xy.html文件放在哪里?
发布于 2014-08-10 21:15:37
模板名可以是变量,也可以是硬编码(引号)字符串,无论是单引号还是双引号。
将模板名放入引号:
{% include "xy.html" %}xy.html应该在TEMPLATE_DIRS目录中的任何位置。
FYI2,将TEMPLATE_DEBUG设置设置为True将有助于查看在呈现模板时引发异常时的详细错误消息。
发布于 2014-08-10 21:36:15
让我们使用一个名为foo的示例项目:
foo
-blog
-admin.py
-models.py
-views.py
-tests.py
-templates
-blog
-post.html
-news
-admin.py
-models.py
-views.py
-tests.py
-templates
-newsitem.html
-foo
-settings.py
-urls.py
-wsgi.py
-templates
-base.html
-blog
-post.html如果您的settings.py包括:
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates')
)然后Django用TEMPLATE_DIRS模板覆盖应用模板,这意味着如果post.html同时驻留在blog/post.html/blog/post.html和template /blog/post.html中(如上面的示例所示),则Django将加载后者。如果您不指定一个TEMPLATE_DIRS,那么Django将在每个应用程序的模板文件夹中搜索post.html,这意味着如果您指定一个: INSTALLED_APPS /INSTALLED_APPS/post.html和一个新闻/模板/blog/post.html都是有效的,则Django将根据您的INSTALLED_APPS外观加载模板:
INSTALLED_APPS = (
...
'blog',
'news',
...
)然后Django将呈现博客应用程序的模板,而不是新闻应用程序的模板(如果我们在新闻模板下有一个blog/post.html )。然而,如果您的INSTALLED_APPS看起来像:
INSTALLED_APPS = (
...
'news',
'blog',
...
)然后Django将从新闻应用程序中加载post.html,而不是博客应用程序(如果我们在新闻应用程序下有模板/ blog /post.html的话)。您还应该挑剔模板名,具有相似名称的模板将根据您的设置和INSTALLED_APPS顺序相互覆盖(较高的重写级别较低),TEMPLATE_DIRS模板总是覆盖所有其他模板。
https://stackoverflow.com/questions/25233071
复制相似问题