jinja2中的set value命令在某些情况下有效,而在某些情况下则无效

时间:2015-07-08 09:59:48

标签: jinja2

以下代码在不同月份显示不同的x值。设置jinja2的命令适用于flag,x但不适用于总数。为什么呢?

    {% set flag = 1 %}
    {% set total = 0 %}
    {% for date in dates %} //dates is some array
        {% if flag == 1 %}
            {{x}}
            {% set flag= 0 %} // I have used 1+1 also that too works
        {% elif "Jul" in date %}
            {% set x = x*3 %}
            {% if x % 10!=0 %}
                {% set x = x - x % 10 %}
                {% set total = total + x %}
            {% endif %}
        {% else %}
            {{x}}
            {% set total = total + x %}
        {% endif %}
    {% endfor %}
    {{total}}

1 个答案:

答案 0 :(得分:0)

模板中的计算逻辑过于复杂:最好将该逻辑(或其部分)移动到数据提供程序组件中。

例如,在数据提供者组件中,您可以为每个x计算data,并将结果放入data.x。然后{{dates|sum(attribute='x')}}将显示总价值。

相关问题