我使用Tarbell发布广告资源电子表格的格式化版本。每一行都有一个类别,所以我可以这样做:
<h2>Power Tools</h2>
{% for row in inventory %}
{% if row.Category == "powertools" %}
<b>{{ row.Display_Name|e }}</b> <br />
{% endif %}
{% endfor %}
<h2>A/V Gear</h2>
{% for row in inventory %}
{% if row.Category == "av" %}
<b>{{ row.Display_Name|e }}</b><br />
{% endif %}
{% endfor %}
获取所有电动工具的列表,然后列出A / V齿轮列表。我想把它移到一个我可以用几个参数调用的宏中。我有这个:
{% macro list(cat, title='') -%}
<p>Category: {{ cat }}; Header: {{ title }}</p>
{% for row in inventory %}
{% if row.Category == "{{ cat }}" %}
<b>{{ row.Display_Name|e }}</b><br />
{% endif %}
{% endfor %}
{%- endmacro %}
当我打电话给:
{{ list('av', title='Cameras and Audio Recorders')}}
{{ list('powertools', title='Power Tools')}}
我看到&#34;类别:powertools;标题:电动工具&#34;和&#34;类别:av;标题:摄像机和录音机&#34;正如所料,所以我知道宏可以听到我,但列表本身并没有显示出来。我可以在比较测试中使用宏参数吗?怎么样?
答案 0 :(得分:1)
在块内部不需要变量插值语法 - 您可以像在Python中一样按名称引用变量:
{# Do this #}
{% if row.Category == cat %}
{# Instead of this #}
{% if row.Category == "{{ cat }}" %}