如何创建一个Jinja2扩展,该扩展将一个Include包裹在With节点中

时间:2020-09-05 12:35:16

标签: jinja2

我正在尝试编写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函数),但是我无法修改上下文,该上下文是只读的,因此我认为可以注入一个Wi​​th节点。知道如何实现吗?

0 个答案:

没有答案