2
我需要通過控制檯腳本來得到特定塊內容的Jinja2。例如得到父塊內容的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 %}
我可以使用類似的東西,以獲得在特定模板此塊內容不inheritanse
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
但我怎麼能得到所有父內容templates.Of當然,我能得到父母來自Extends塊的模板名稱並重復執行相同的操作tiil我得到沒有Extends塊的頂級模板。但也許有更有效的方法?
UPD:我錯過了我的問題的重要組成部分。我使用{{超()}}在我的塊,我需要得到所有繼承的內容不是在渲染頁面,但通過命令行腳本解析的內容。
//global template
{% block target %}
<some_content_from_top>
{% endblock %}
//parent template
{% extends 'top.html' %}
{% block target %}
{{ super() }}
<some_content_from_parent>
{% endblock %}
//child template
{% extends 'parent.html' %}
{% block target %}
{{ super() }}
<some_content>
{% endblock %}
# script content
template_source = self.env.loader.get_source(self.env, template_path)[0]
parsed_content = self.env.parse(template_source).body
我需要得到所有模板中的所有內容解析的內容
我很抱歉,我錯過了我的問題的一些重要人員。更新問題 –