如何简化包含的 jinja2 模板中的变量命名?

问题描述 投票:0回答:1

我想简化 jinja2 模板中的变量命名。

当使用“include”关键字时,所有变量都在一个范围内。 如何为每个包含的模板设置一个具有不同值的变量名称?

main.j2:
{% include 'left.j2' %}
{% include 'right.j2' %}

left.j2:
good way: {{ title }}
bad way: {{ left_title }} 

right.j2:
good way: {{ title }}
bad way: {{ right_title }} 

我试图覆盖类方法 jinja2/environment.py:Environment().getitem(obj, argument)。 作为传入参数,我收到 obj 和参数,但无法确定它来自哪个模板来替换适当的值。

variables jinja2 naming
1个回答
0
投票

使用

with
语句覆盖上下文中的变量:

{% with title='New title for left.j2' %}
{% include 'left.j2' %}
{% endwith %}

{% with title='New title for right.j2' %}
{% include 'right.j2' %}
{% endwith %}
© www.soinside.com 2019 - 2024. All rights reserved.