【发布时间】:2010-12-30 21:42:08
【问题描述】:
我从事 html/css 的交易,我一直在从事和关闭 django 项目作为模板设计师。我目前正在一个使用 Jinja2 的网站上工作,我已经使用了大约 2 周。我刚刚通过阅读文档发现 Jinja2 不支持多级模板继承,因为你不能做多个
{% extends "foo" %}
每次渲染。现在我很确定你可以在 Django 中做到这一点,它很强大,因为你可以指定一个基本模板,基于它指定 3 或 4 个模板,然后使用这些基本模板构建你的页面。继承的重点不是让你有更多的抽象能力,所以你唯一真正搞砸的不是唯一的代码吗?
无论如何,我不知道在这里做什么。我不知道是否有某种方法可以像使用 Django 模板一样工作。我不是 Django 或 Jinja(2) 方面的专家,但我可以提供所需的任何信息。
【问题讨论】:
-
请提供说明 Jinja2 不能进行多级继承的链接。您是否尝试过使用模板层次结构?你遇到了什么错误?
-
jinja.pocoo.org/2/documentation/templates#extends - “不支持多重继承。”
-
@xckpd7:多重继承与多级单继承不同。我也看不到 Django 中对多重继承的支持。请提供一些示例来说明您是在谈论多级继承还是实际的多级继承。
-
@S.Lott:我想做的就是拥有一个基本模板,基于该模板拥有 3 或 4 个基本模板,并能够基于这些模板创建模板,以提供极致的灵活性。我的印象是您通过在子基础模板和单个 html 模板上指定扩展来做到这一点,这可能是 2 个或更多 {% extends %} 标签,因此违反了说明您的文档部分每次渲染只能使用一个 {% extends %}。我可能是对的,也可能是错的,但鉴于我所问的,有没有办法做到这一点?
-
@xckpd7:请不要在您自己的问题上编写扩展的 cmets。请更新问题。请提供一个你认为你想做的例子。请提供您实际遇到的问题。您可以拥有任何深度的模板层次结构,因此我不明白您当前尝试使用的解决方案有什么不工作的地方。请使用示例代码更新问题。
标签: python css django django-templates jinja2