Django,如何从主静态文件夹中的模板扩展

时间:2012-12-09 09:50:58

标签: python django

我有一个名为mytemplates的文件夹,用于网站基础模板

Project ----App1,App2,App3,static

现在在我的静态文件夹中,我有一个名为mytemplates/temp1/index.html

的文件夹

现在在我的app1

app1/templates/app1/index.html

我想这样做

{% extends "/static/mytemplates/temp1/index.html" %}

但它说没有找到模板

2 个答案:

答案 0 :(得分:3)

您无需撰写/static

您必须在settings.TEMPLATE_DIRS中定义/static文件夹,否则django的模板加载程序将永远不会在那里搜索。您必须写出完整路径,而不是相对路径。

默认情况下,模板加载器在模板文件夹内搜索,因此它们不依赖于它们所在的模板文件夹。意思是,写{% extends "mytemplates/temp1/index.html" %}将导致django列出所有模板目录,将mytemplates/temp1/index.html附加到每个的绝对路径,并确定连接路径是否存在。如果没有,它会继续尝试您的其他模板目录。如果在尝试所有目录后没有找到匹配项,则django会引发异常。

只需{% extends "mytemplates/temp1/index.html" %}文件夹位于您的static元组中且settings.TEMPLATES_DIR存在于"mytemplates/temp1/index.html"中,就可以正常编写static

答案 1 :(得分:0)

您没有在文件中输入完整路径名,请查看here以获取确切的语法。如果与您从视图中调用模板的名称相同。