Django如何处理模板名称冲突?

时间:2012-04-10 23:06:33

标签: django django-templates

...当多个应用程序在适当的层次结构之外定义类似命名的模板时。谢谢。

2 个答案:

答案 0 :(得分:1)

不清楚你的意思。在指定模板时,应该对其进行适当命名并准确指定。如果你的意思是管理员从模板列表中选择“最佳”模板,它会使用一个简单的算法来找到最佳匹配。它只是通过将模板列表传递给loader.select_template并使用第一个有效的模板来完成此操作。

答案 1 :(得分:1)

模板加载器按照您在settings.TEMPLATE_LOADERS中定义的顺序应用。

例如,如果app_directories加载器在filesystem加载器之后运行,并且您的模板位于filesystem加载器中,则永远不会使用app_directories加载器

如果您专门讨论app_directories加载程序,它会按照INSTALLED_APPS中定义的顺序搜索您的应用模板文件夹。

如果您有非故意的冲突模板名称(不是某种覆盖层次结构),您可能最好在每个模板文件夹前加上应用程序名称。

# this is standard
myapp/templates/myapp/index.html 
myapp2/templates/myapp2/index.html