python jinja2:在带有条件的模板中使用变量

时间:2014-12-14 19:12:56

标签: python jinja2

我有这个:

{% for row in data: %}
    <td
            {{'value={{row['value']}}' if 'showit' in map and header in map['showit'] and 'value' in row}}
    > ... </td>
{% endfor %}

但显然这不起作用。尝试使用row dict中的辅助列向单元格添加HTML属性。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

假设您使用row['value']的语法遇到麻烦,请连接字符串而不是尝试嵌套{{ }}

{{ 'value=' + row['value'] if True }}

当然,将True替换为您的条件。如果你需要引用参数:

{{ 'value="' + row['value'] + '"' if True }}

正如@ Reza-S4建议你也可以把print语句之外的条件放得更清楚:

{% if 'showit' in map and header in map['showit'] and 'value' in row: %}
  value="{{ row['value'] }}"
{% endif %}