2011-03-02 72 views
0

是否可以将forloop.counter对象重置为零?是一个django模板forloop resetabble?

我用它来吐出对象,但是当对象类型发生变化时,我想将它归零,以便我可以计数到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 %} 
+0

应该添加forloo.counter == 1不应该在那里,它不工作! – bytejunkie 2011-03-02 15:27:52

回答

1

我不太清楚,我明白你需要什么。您可以使用regroup标签根据类型显示您的对象。

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

+0

这也将解决我的问题。感谢您指出。我在官方文档中阅读了它,但无法理解它将如何提供帮助。你的简单例子非常完美。 – bytejunkie 2011-03-04 19:08:20

2

这听起来像你应该regrouping对象根据类型,并在内部循环做填充。

+0

这是芥末,谢谢队友。 – bytejunkie 2011-03-02 15:30:45