Django for 标签
For 循环
for
循环用于遍历序列,例如遍历数组、列表或字典中的项目。
实例
遍历字典列表:
{% for x in cars %}
<h1>{{ x.brand }}</h1>
<p>{{ x.model }}</p>
<p>{{ x.year }}</p>
{% endfor %}
运行实例 »
来自模型的数据
模型中的数据就像一个有行和列的表格。
我们之前创建的 Members 模型有五行,每行有三列:
id | firstname | lastname |
---|---|---|
1 | Emil | Refsnes |
2 | Tobias | Refsnes |
3 | Linus | Refsnes |
4 | Lene | Refsnes |
5 | Stalikken | Refsnes |
当我们从模型中获取数据时,它以 QuerySet 对象的形式出现,格式与上面的 cars 示例类似:带有字典的列表:
<QuerySet [
{
'id': 1,
'firstname': 'Emil',
'lastname': 'Refsnes'
},
{
'id': 2,
'firstname': 'Tobias',
'lastname': 'Refsnes'
},
{
'id': 3,
'firstname': 'Linus',
'lastname': 'Refsnes'
},
{
'id': 4,
'firstname': 'Lene',
'lastname': 'Refsnes'
},
{
'id': 5,
'firstname': 'Stalikken',
'lastname': 'Refsnes'
}
]>
实例
遍历从数据库中获取的项目:
{% for x in members %}
<h1>{{ x.id }}</h1>
<p>
{{ x.firstname }}
{{ x.lastname }}
</p>
{% endfor %}
运行实例 »
Reversed
reversed
关键字用于当您想以相反的顺序执行循环时。
实例
{% for x in members reversed %}
<h1>{{ x.id }}</h1>
<p>
{{ x.firstname }}
{{ x.lastname }}
</p>
{% endfor %}
运行实例 »
Empty
empty
关键字可以用来在对象为空的情况下做一些特殊的事情。
实例
<ul>
{% for x in emptytestobject %}
<li>{{ x.firstname }}</li>
{% empty %}
<li>No members</li>
{% endfor %}
</ul>
运行实例 »
如果对象不存在,也可以使用empty
关键字:
实例
<ul>
{% for x in myobject %}
<li>{{ x.firstname }}</li>
{% empty %}
<li>No members</li>
{% endfor %}
</ul>
运行实例 »
Loop 循环变量
Django 在循环中有一些变量可供您使用:
- forloop.counter
- forloop.counter0
- forloop.first
- forloop.last
- forloop.parentloop
- forloop.revcounter
- forloop.revcounter0
forloop.counter
当前迭代,从 1 开始。
forloop.counter0
当前迭代,从 0 开始。
forloop.first
允许您测试循环是否处于第一次迭代中。
实例
为循环的第一次迭代画一个蓝色背景:
<ul>
{% for x in fruits %}
<li
{% if forloop.first %}
style='background-color:lightblue;'
{% endif %}
>{{ x }}</li>
{% endfor %}
</ul>
运行实例 »
forloop.last
允许您测试循环是否处于最后一次迭代。
实例
为循环的最后一次迭代画一个蓝色背景:
<ul>
{% for x in fruits %}
<li
{% if forloop.last %}
style='background-color:lightblue;'
{% endif %}
>{{ x }}</li>
{% endfor %}
</ul>
运行实例 »
forloop.revcounter
如果从末尾开始倒数,则为当前迭代,以 1 结束。
forloop.revcounter0
如果从末尾开始倒数,则为当前迭代,以 0 结束。