如何在单个Django模板中使用多个对象进行循环?

时间:2017-01-04 16:17:34

标签: html twitter-bootstrap-3 django-templates grid-system django-1.10

我有一个带有容器类的div元素,如下所示:

<div class="container">
    <div class="col-lg-4 col-sm-4">
        <a href=""><h3></h3></a>
        <p></p>
        <span class="label {% cycle 'label-success' 'label-primary' 'label-info' %}"></span>
    </div>
</div>

从我的代码中可以看出,如果我在内部div上执行foor循环,那么每行应该显示3个项目。并且span标记必须为每个对象具有不同的class属性。

会是这样的:

<div class="container">
    {% for source_code in all_source_codes %}
    <div class="col-lg-4 col-sm-4">
        <a href=""><h3>{{ source_code.program_title }}</h3></a>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Rerum, dolor officia esse, voluptas harum numquam corporis dolorem! Voluptatem inventore, atque in dolores velit, totam, assumenda dolorum cupiditate esse corporis aspernatur!</p>
        <span class="label {% cycle 'label-success' 'label-primary' 'label-info' %}">{{ source_code.programming_language }}</span>
    </div>
    {% endfor %}
</div>

但是这会导致网格视图系统崩溃。那我该怎么办呢?我的重点是span标签。我想显示具有适当类的对象。

正确表格(这就是我想要的):

Correct Form

不正确的表格(现在就是这样):

Incorrect Form

**更新** 正确的代码(为了更好的做法):

{% for sc in all_source_codes %}
    {% if forloop.first or forloop.counter|add:"-1"|divisibleby:3 %}<div class="container">{% endif %}
        <div class="col-lg-4 col-sm-4">
            <hr style="border: 1px dotted black;">
            <a href="{% url 'detail' sc.pk %}"><h4>{{ sc.program_title }}</h4></a>
            <p>{{ sc.description }}</p>
            <span class="label {% cycle 'label-success' 'label-primary' 'label-info' %}">{{ sc.programming_language }}</span>
        </div>
    {% if forloop.counter|divisibleby:3 or forloop.last %}</div>{% endif %}
{% endfor %}

0 个答案:

没有答案