Jinja2:声明并保存数组

时间:2015-03-12 04:54:10

标签: arrays variables jinja2

我是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 个答案:

答案 0 :(得分:0)

你有两个问题:

  1. 您的data变量在for循环内声明,不可用于外部作用域。
  2. Python中没有++运算符。
  3. 但主要问题是,您实际上应该在视图中包含业务逻辑,并在模板中使用 presentation 。即使您找到了使示例正常工作的解决方法,您仍应将逻辑移动到生成模板所使用的上下文变量的视图中。您的模板必须足够简单,以便在业务需求发生变化时保持独立。