是一个django模板forloop resetabble?

时间:2011-03-02 15:04:45

标签: django templates django-templates

是否可以将forloop.counter对象重置为零?

我正在使用它来吐出对象,但是当对象类型改变时我想将它归零,这样我可以数到5个对象并输出行对象的末尾(没有右边的填充)作为第五个和只有该类型的第五个对象。

如果我有5个对象,前两个是a型,接下来的3个是b型,第五个总是得到更小的填充,更别提它只有第三个了。

这是我的模板代码:

{% for project in projects %}
    {% ifchanged project.proj_type %}
        {% forloop.counter=="1" %}
        </div>
        <div class="span-4 prepend-top">
            <h5 class="right" >{{ project.proj_type }}</h5>
        </div>

        <div class="span-19 append-1 last" id="row-of-projects">
    {% endifchanged %}

    {% if forloop.counter|divisibleby:"4" %}                    
        <div class="span-4 append-1 prepend-top last" id="project">
    {% else %}
        <div class="span-4 append-1 prepend-top" id="project">
    {% endif %}
        <p class="project-name">{{ project.name }}</p>                    
        <a href="/gallery/{{ project.slug }}/" ><img src="/media/pa/photographs/{{ project.get_photograph }}-t.jpg" alt="{{ project.name }}" /></a>
        </div id="project">
{% endfor %} 

2 个答案:

答案 0 :(得分:2)

听起来你应该是基于类型的regrouping个对象,并在内循环中进行填充。

答案 1 :(得分:1)

我不太确定我理解你的需要。

您可以使用regroup标记根据类型显示对象。

您可以使用class="{% cycle 'normal' 'normal' 'normal' 'normal' 'special' %}"以不同方式设置每个第五个元素的样式。