Django - 迭代模板的for循环中的数字

ors*_*iro 217 django for-loop django-templates

我在django模板中显示以下for循环显示天数.我想知道,是否有可能在循环中迭代一个数字(在下面的例子中).或者我是否必须将其存储在数据库中,然后以days.day_number的形式查询?

{% for days in days_list %}
    <h2># Day {{ i }} - From {{ days.from_location }} to {{ days.to_location }}</h2>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

Roh*_*han 509

Django提供它可以使用{{ forloop.counter }}索引从1 {{ forloop.counter0 }}开始或索引从0开始.

更多信息在Django模板forloop

只是为了在这里添加快速帮助而不是去django doc.

在模板中你可以做到

{% for item in item_list %}
    {{ forloop.counter }} # starting index 1
    {{ forloop.counter0 }} # starting index 0

    # do your stuff
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

  • 嵌套的 for 循环呢?我们如何告诉 django 是要计算内部循环还是外部循环? (2认同)
  • @ crey4fun,查看`forloop.parentloop`参考文档了解更多信息. (2认同)

JMJ*_*JMJ 67

也可以使用这个:

{% if forloop.first %}
Run Code Online (Sandbox Code Playgroud)

要么

{% if forloop.last %}
Run Code Online (Sandbox Code Playgroud)

  • 不是问题的答案,但仍然是许多人将寻找这个问题的答案.好东西! (6认同)

Ahm*_*udi 21

{% for days in days_list %}
    <h2># Day {{ forloop.counter }} - From {{ days.from_location }} to {{ days.to_location }}</h2>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

或者如果你想从0开始

{% for days in days_list %}
        <h2># Day {{ forloop.counter0 }} - From {{ days.from_location }} to {{ days.to_location }}</h2>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)


per*_*eka 10

从文档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 %}
Run Code Online (Sandbox Code Playgroud)
  • {{ forloop.counter }}从开始计数1
  • {{ forloop.counter0 }}从开始计数0