【发布时间】:2015-09-14 14:39:14
【问题描述】:
我需要通过控制台脚本从 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 块的顶级模板。但也许有更有效的方法?
【问题讨论】: