从技术上讲,它应该从0迭代到rangeLength输出c [i] [0] .from_user的用户名...但是从在线示例看,它们似乎用点符号替换括号。我有以下代码:
<div id="right_pod">
{%for i in rangeLength%}
<div class="user_pod" >
{{c.i.0.from_user}}
</div>
{% endfor %}
这当前没有输出任何内容:(如果我将“i”替换为0 ... {{c.0.0.from_user}} ...它将输出一些东西..(第一个用户10次)
答案 0 :(得分:19)
您需要i
作为索引吗?如果没有,请查看以下代码是否符合您的要求:
<div id="right_pod">
{% for i in c %}
<div class="user_pod">
{{ i.0.from_user }}
</div>
{% endfor %}
答案 1 :(得分:14)
请阅读整个documentation on the template language's for loops。首先,迭代(如在Python中)是对象而不是索引。其次,在任何for循环中都有一个forloop变量,它有两个你会感兴趣的字段:
Variable Description
forloop.counter The current iteration of the loop (1-indexed)
forloop.counter0 The current iteration of the loop (0-indexed)
答案 2 :(得分:8)
您应该使用切片模板过滤器来实现您的目标:
迭代对象(在本例中为c),如下所示:
{% for c in objects|slice:":30" %}
这将确保您只迭代前30个对象。
此外,您可以使用forloop.counter对象来跟踪您正在进行的循环迭代。