Django模板名称冲突

Ale*_*.P. 9 django templates

可能重复:
Django视图 - 首先从调用app的目录加载模板

我有许多应用程序的Django项目.实际上文件结构如下:

myproj/
  default/
    templates/
      index.html  (1)
  app1/
    templates/
      index.html  (2)
  app2/
    templates/
      index.html  (3)
Run Code Online (Sandbox Code Playgroud)

我希望在模板解析时,活动应用程序的模板目录具有最高优先级.但实际上我得到的第一个模板是INSTALLED_APPS命令!如果我更改已安装应用的顺序 - 模板会相应更改.

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

che*_*che 10

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

myproj/
  app1/
    templates/
      app1/
        index.html
Run Code Online (Sandbox Code Playgroud)

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