我正在使用现有项目中的 Satchmo 安装。这个项目有它自己的模板以及一些已安装的各种应用程序的模板。其中一些特定于应用程序的模板有自己的 app_base.html 变体,这些变体期望从 base.html 派生。我希望能够对我的 Satchmo 模板做同样的事情,并将它们驻留在我的项目的基础中,但还可以在所有这些模板周围添加一些额外的 html。
- /模板
- base.html
- 索引.html
- /消息
- news_base.html(扩展 base.html 并添加特定于新闻的模板功能)
- 索引.html
- 详细信息.html
- /店铺
- base.html(覆盖 Satchmo 的基础)
这种结构有些作用,但不是我所期望的。在 /store/base.html(Satchmo 的基础)中,我只是用测试消息替换了所有内容。我可以看到该消息,所以我知道 satchmo 正在加载其基础而不是站点的基础。但是,我不能再扩展我的项目的基础,因为使用:
{% extends "base.html %}
产生一个递归错误,因为它调用自己,下面的根本行不通。
{% extends "../base.html" %}
我意识到我可以将我的项目的 base.html 更改为稍微不同的名称,并将所有特定于应用程序的模板指向它们,但这似乎是对模板结构的这样一个基本方面的一个相当大的 hack。