google-app-engine - Jinja2 不返回循环变量

标签 google-app-engine jinja2

我在 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}]

最佳答案

奇怪...您使用的是什么版本的 python?当我执行这段代码时,我得到以下输出:

 {% for publisher in heater %}
    <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.index == 2 %} checked{% endif %}></td>
    </tr>
{% endfor %}

我检查了 Emi 2。你在看什么?

我也把你的数据改成了这样:

    data = [{'id': 4974053165105152, 'name': 'BMG', 'songs': 1}, 
              {'id': 5888297083600896, 'name': 'Emi', 'songs': 2}, 
              {'id': 6099953071947776, 'name': 'Ninja Tune', 'songs': 1}, 
              {'id': 4762397176758272, 'name': 'Sony', 'songs': 0}, 
              {'id': 5325347130179584, 'name': 'Universal', 'songs': 0}, 
              {'id': 4815173734891520, 'name': 'Warner', 'songs': 0}]

关于google-app-engine - Jinja2 不返回循环变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18448841/

相关文章:

flask - 如何在Flask中将参数从模板传递到 View

python - 使用 Jinja2 的 HTML 模板

python - 如何在 Jinja2 HTML 模板中不使用 JavaScript 将用户重定向到另一个网页?

python - 如何获取数据存储查询的第 n 条记录

google-app-engine - Eclipse 不生成谷歌云端点客户端库

python - 从 Google App Engine 数据存储区获取随机记录?

javascript - jinja url 命名路由转义大括号文字

google-app-engine - 如何将 -ldflags 传递给 GAE 构建?

java - 如何从代码中获取跟踪ID?

Ansible:如果存在则包含文件,如果不存在则不执行任何操作