这个问题在这里已经有了答案:
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/