我的django模板中有以下for循环显示天数。我想知道,是否有可能在循环中迭代一个数字(在下面的例子中)。或者我是否必须将其存储在数据库中,然后以days.day_number的形式查询?
{% for days in days_list %}
<h2># Day {{ i }} - From {{ days.from_location }} to {{ days.to_location }}</h2>
{% endfor %}
答案 0 :(得分:451)
Django提供它。您可以使用:
{{ forloop.counter }}
索引从 1 开始。{{ forloop.counter0 }}
索引从 0 开始。在模板中,您可以执行以下操作:
{% for item in item_list %}
{{ forloop.counter }} # starting index 1
{{ forloop.counter0 }} # starting index 0
# do your stuff
{% endfor %}
更多信息:for | Built-in template tags and filters | Django documentation
答案 1 :(得分:54)
也可以使用这个:
{% if forloop.first %}
或
{% if forloop.last %}
答案 2 :(得分:1)
来自文档 https://docs.djangoproject.com/en/stable/ref/templates/builtins/#for 你可以找到它来计算物品你可以使用这样的计数器
{% for job in jobs %}
<td>{{ forloop.counter }}</td>
<td>{{ job.title }}</td>
<td>{{ job.job_url }}</td>
{% endfor %}
{{ forloop.counter }}
从 1
开始计数{{ forloop.counter0 }}
从 0
开始计数答案 3 :(得分:0)
[Django HTML模板目前不支持索引],但是您可以实现目标:
如果您在views.py的Dictionary中使用 Dictionary ,则可以使用key作为索引进行迭代。例如:
{% for key, value in DictionartResult.items %} <!-- dictionartResult is a dictionary having key value pair-->
<tr align="center">
<td bgcolor="Blue"><a href={{value.ProjectName}}><b>{{value.ProjectName}}</b></a></td>
<td> {{ value.atIndex0 }} </td> <!-- atIndex0 is a key which will have its value , you can treat this key as index to resolve-->
<td> {{ value.atIndex4 }} </td>
<td> {{ value.atIndex2 }} </td>
</tr>
{% endfor %}
如果在字典中使用 List ,则不仅可以控制第一个和最后一个迭代,而且可以控制所有索引。例如:
{% for key, value in DictionaryResult.items %}
<tr align="center">
{% for project_data in value %}
{% if forloop.counter <= 13 %} <!-- Here you can control the iteration-->
{% if forloop.first %}
<td bgcolor="Blue"><a href={{project_data}}><b> {{ project_data }} </b></a></td> <!-- it will always refer to project_data[0]-->
{% else %}
<td> {{ project_data }} </td> <!-- it will refer to all items in project_data[] except at index [0]-->
{% endif %}
{% endif %}
{% endfor %}
</tr>
{% endfor %}
如果结束;)
// 希望用词典,列表,HTML模板,For循环,内部循环,其他方式覆盖解决方案。 Django HTML Documentaion了解更多方法:https://docs.djangoproject.com/en/2.2/ref/templates/builtins/
答案 4 :(得分:0)
我想你可以这样叫id
{% for days in days_list %}
<h2># Day {{ days.id }} - From {{ days.from_location }} to {{ days.to_location }}</h2>
{% endfor %}
答案 5 :(得分:0)
{% for days in days_list %}
<h2># Day {{ forloop.counter }} - From {{ days.from_location }} to {{ days.to_location }}</h2>
{% endfor %}
或者如果您想从0开始
{% for days in days_list %}
<h2># Day {{ forloop.counter0 }} - From {{ days.from_location }} to {{ days.to_location }}</h2>
{% endfor %}