我正在尝试编写jinja2扩展名,以模拟由with语句包装的include语句的行为
给出这样的上下文:
context = {
"sections" : {
"sectionA": {
"hello": "world"
}
}
}
我想包含以下模板sectionA.tpl
print my {{section.hello}}
使用此自定义扩展名
{% section "sectionA" %}
应该模仿
{% with section=sections.sectionA %}
{% include 'sectionA.tpl' %}
{% endwith %}
我能够模拟include扩展(基本上复制了解析器模块的parse_include函数),但是我无法修改上下文,该上下文是只读的,因此我认为可以注入一个With节点。知道如何实现吗?