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

{% for days in days_list %}
    <h2># Day {{ i }} - From {{ days.from_location }} to {{ days.to_location }}</h2>
{% endfor %}

当前回答

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 %}

更多信息在:|内置模板标签和过滤器| Django文档

其他回答

我认为你可以调用id,像这样

{% for days in days_list %}
    <h2># Day {{ days.id }} - From {{ days.from_location }} to {{ days.to_location }}</h2>
{% endfor %}
{% 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 %}

这样做,

{% for days in days_list %}
    <h2># Day {{ forloop.counter }} - From {{ days.from_location }} to {{ days.to_location }}</h2>
{% endfor %}

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 %}

更多信息在:|内置模板标签和过滤器| Django文档

你也可以用这个:

{% if forloop.first %}

or

{% if forloop.last %}