13

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

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

myproj/
  default/
    templates/
      index.html  (1)
  app1/
    templates/
      index.html  (2)
  app2/
    templates/
      index.html  (3)

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

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

4

1 回答 1

14

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

myproj/
  app1/
    templates/
      app1/
        index.html

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

于 2012-07-13T12:55:35.790 回答