我需要通过控制台脚本从Jinja2中的特定块获取内容 . 例如
//global template
{% block target %}
<some_content_from_top>
{% endblock %}
//parent template
{% extends 'top.html' %}
{% block target %}
<some_content_from_parent>
{% endblock %}
//child template
{% extends 'parent.html' %}
{% block target %}
<some_content>
{% endblock %}
我可以使用类似的东西从特定模板中获取此块的内容而不使用继承
template_source = self.env.loader.get_source(self.env, template_path)[0]
parsed_content = self.env.parse(template_source).body
# do something with blck content
但是我怎样才能从所有父模板中获取内容 . 当然我可以从Extends块获取父模板名称并一遍又一遍地进行相同的操作 . 我得到顶级模板而没有Extends块 . 但也许有更有效的方法?
1 回答
您可以使用Jinja2's super function在父模板中包含块中的内容 .
top.html
parent.html
child.html
这将导致: