我在 Google App Engine 上有一个带有 Jinja2 的网站,所以版本是 2.6。在某些时候,我遍历一个列表以生成单选按钮,我希望默认选中第一个。我的代码如下:
{% for publisher in publishers %}
<tr onclick="doNav('/spt/publisher/{{ publisher.id }}');" style="cursor: pointer;">
<td>{{ publisher.name }}</td>
<td>{{ publisher.songs }}</td>
<td><input form="export_publisher_form" onclick="event.cancelBubble = true;"
type="radio" name="export_publisher" value="{{ publisher.id }}"{% if loop.first %} checked{% endif %}></td>
</tr>
{% endfor %}
问题是,Jinja 似乎没有为 loop.first 返回任何值,也没有返回任何循环变量(我尝试使用 loop.index、loop.length 和 loop.cycle)。难道我做错了什么 ?
编辑: publishers 是一个看起来像这样的列表(为清楚起见缩进):
[{'id': 4974053165105152L, 'name': u'BMG', 'songs': 1},
{'id': 5888297083600896L, 'name': u'Emi', 'songs': 2},
{'id': 6099953071947776L, 'name': u'Ninja Tune', 'songs': 1},
{'id': 4762397176758272L, 'name': u'Sony', 'songs': 0},
{'id': 5325347130179584L, 'name': u'Universal', 'songs': 0},
{'id': 4815173734891520L, 'name': u'Warner', 'songs': 0}]