Django模板名称冲突

标签 django templates

这个问题在这里已经有了答案:




9年前关闭。




Possible Duplicate:
Django view - load template from calling app's dir first



我有一个带有许多应用程序的 Django 项目。实际上文件结构如下:
myproj/
  default/
    templates/
      index.html  (1)
  app1/
    templates/
      index.html  (2)
  app2/
    templates/
      index.html  (3)

我希望在模板解析时事件应用程序的模板目录具有最高优先级。但实际上我根据 INSTALLED_APPS 订单获得了第一个模板!
如果我更改已安装应用程序的顺序 - 模板也会相应更改。

问题:有没有办法先从当前应用程序中获取模板?模板名称的唯一性/显式目录规范是实现它的唯一方法吗?

最佳答案

通常的解决方案是将模板放在另一个子目录中,以您的应用程序命名,例如:

myproj/
  app1/
    templates/
      app1/
        index.html

这是由附带的应用程序(例如 django.contrib.admin )完成的,并且运行良好。我通常使用通用名称,如 index.html在项目特定文件的模板根目录中(例如整个站点的索引)。

关于Django模板名称冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11470572/

相关文章:

C++:如何将对象传递给函数作为模板化基类

c++ - 多个模板<int>函数的特化

c++ - 为什么 std::swap 有这么多特化?

与管理器相关的 Django 重复查询

django - 关于 "parser"方法的文档在哪里?

python - 具有集成查询集的子类 Django 模型

C++ 包装器模板 : how to pass it as a template parameter?

python - django-modeltranslation : how to know if the value is defined in a given language?

python - 成功付款django更新数据库

C++、比较器和模板