【发布时间】:2014-11-26 08:51:41
【问题描述】:
Django 教程建议这样组织模板:
在您刚刚创建的模板目录中,创建另一个名为 polls 的目录,并在其中创建一个名为 index.html 的文件。换句话说,您的模板应该位于 polls/templates/polls/index.html。由于 app_directories 模板加载器的工作方式如上所述,您可以在 Django 中将此模板简单地称为 polls/index.html。
教程还告诉我如果我只是将 index.html 放入民意调查/模板中会发生什么:
现在我们或许可以将模板直接放在 polls/templates 中(而不是创建另一个 polls 子目录),但这实际上是个坏主意。 Django 将选择它找到的第一个名称匹配的模板,如果您在不同的应用程序中有一个具有相同名称的模板,Django 将无法区分它们。我们需要能够将 Django 指向正确的位置,而确保这一点的最简单方法是对它们进行命名空间。也就是说,将这些模板放在另一个以应用程序本身命名的目录中。
我的假设是,只要我创建一个隔离的应用程序,它的模板也与其他应用程序隔离,没有任何子文件夹魔法。
有没有另一种命名空间的方式,所以我可以将模板称为 index.html 而无需创建重复的文件夹?
【问题讨论】:
标签: python django templates namespaces