每四次迭代修改Django for循环

时间:2017-06-04 20:17:54

标签: css django twitter-bootstrap

我有一个由Django生成的日历,并使用Bootstrap进行样式设置。 这是Django模板中的代码:

<div class="content">
  {% for month in period.get_months %}
    <div class="col-md-3">
      <div class="row row-centered">
        <button class="btn btn-custom active" href="{% url "month_calendar" calendar.slug %}{% querystring_for_date month.start 2 %}">{{month.name}}</button>
      </div>
      <div>
        {% month_table calendar month "small" %}
      </div>
    </div>
  {% endfor %}
</div>

现在,由于几个月有不同的周数,他们有不同的高度,我想避免这样的事情: enter image description here

我从this answer了解到,最好的解决方案是使用clearfix

那么,我如何修改模板中的for循环,以便Django每四个项目插入一个额外的行<div class="clearfix"></div>

1 个答案:

答案 0 :(得分:2)

用于循环的Django模板存储forloop.counter变量中的当前索引。您可以在docs中了解相关信息。所以你可以试着像这样改变你的代码:

<div class="content">
  {% for month in period.get_months %}
    <div class="col-md-3">
      <div class="row row-centered">
        <button class="btn btn-custom active" href="{% url "month_calendar" calendar.slug %}{% querystring_for_date month.start 2 %}">{{month.name}}</button>
      </div>
      <div>
        {% month_table calendar month "small" %}
      </div>
    </div>
    {% if forloop.counter|divisibleby:4 %}
        <div class="clearfix"></div>
    {% endif %}
  {% endfor %}
</div>