Python for循环外部模板中的计数器增量

Python for循环外部模板中的计数器增量,python,django,python-3.x,django-templates,Python,Django,Python 3.x,Django Templates,我需要在循环中做一个计数器增量。我查看了django for.counter,但不幸的是,我的增量并不完全出现在循环的每个迭代中。那么,有没有任何方法可以在django模板中实现变量的增量,而不用在代码中费力地实现一个新对象来实现这一点 在下面的代码中,我正在编写行{{{count=0}},{{count+=1}},仅用于说明。我知道这行不通。以下是我的模板的简化形式: <div class="jumbotron slotgroup slotavailable mb-1 mt-5" id=

我需要在循环中做一个计数器增量。我查看了django for.counter,但不幸的是,我的增量并不完全出现在循环的每个迭代中。那么,有没有任何方法可以在django模板中实现变量的增量,而不用在代码中费力地实现一个新对象来实现这一点

在下面的代码中,我正在编写行
{{{count=0}}
{{count+=1}}
,仅用于说明。我知道这行不通。以下是我的模板的简化形式:

<div class="jumbotron slotgroup slotavailable mb-1 mt-5" id="jumbo_week_avail">
  <div class="slot-header" role="alert">
    Headertext
  </div>
  {% if weeklyslotsav %}
    {% for day,daynum in weekzip %}
    {{ count = 0 }}
      {% if daynum in weeklyslotsav.day %}
        {% for weekslotav in weeklyslotsav %}
          {% if weekslotav.day == daynum %}
          <div class="row row_week_avail{{ weekslotav.day }}" id="row_week_avail{{ weekslotav.day }}_{{ count }}">
          </div>
          {{ count += 1 }}
          {% endif}
        {% endfor %}
      {% else %}
      <div class="row row_week_avail{{ daynum }}" id="row_week_avail{{ daynum }}_0">
      </div>
      {% endif %}
    {% endfor %}
  {% else %}
    {% for weekday, weeknum in weekzip %}
    <div class="row row_week_avail{{ weeknum }}" id="row_week_avail{{ weeknum }}_0">
    </div>
    {% endfor %}
  {% endif %}
</div>

我见过很多类似的问题。然而,在所有这些例子中,我都看到有人介绍.counter的
。但这不适合我的目的。

您可以使用
with
标记将模板中的变量设置为-

{% with count=0  %}        
   {{ count}}
    ...do other stuffs 
{% endwith %}
至于数学,你可以用django比如

{{count}添加:“1”}

您可以使用这两种方法编写代码

有关在django模板中设置变量的详细信息,请参阅-

在django中使用数学-


希望这对您有所帮助。

然后您需要“将逻辑移到视图级别”。请不要在模板中编写命令式代码。Django模板故意让人们难以避免编写这样的语句。您必须在视图中添加一些逻辑,例如,对于每个迭代,都会添加此类
计数器的值。
。可能重复@WillemVanOnsem,那么遗憾的是,我必须在sql中添加额外的冗余行。不@Johan,因为for.counter无法解决我的问题problem@Droidzone:否,只需将数据添加到“对象”视图将传递到模板。就像您使用
zip(…)
一样。
{% with count=0  %}        
   {{ count}}
    ...do other stuffs 
{% endwith %}