Jinja2:声明和保存数组

Jinja2 : declaring and saving array

我是 Jinja2 的新手,我被迫将它用于自定义 Web 应用程序。我想声明一个数组并将值保存到它。有人可以告诉我哪里出错了吗?

    {%- for row in doc.other_charges -%}
    {%- if not row.included_in_print_rate -%}
            {% set data[i]=row.description %}
            {% i++ %}
            {% set data[i]=row.get_formatted("tax_amount", doc) %}
            {% i++ %}
    {%- endif -%}
    {%- endfor -%}

你有两个问题:

  1. 您的 data 变量在 for 循环内声明并且不可用于外部范围。
  2. Python 中没有 ++ 运算符。

但主要问题是,您实际上应该在视图中包含 业务逻辑,在模板中包含 表示。即使您找到了使您的示例工作的解决方法,您仍然应该将您的逻辑移动到生成上下文变量以供您的模板使用的视图。您的模板必须足够简单,以便在业务需求发生变化时保持独立。