Django 防止前两次迭代的循环计数
我试图以一种特殊的方式显示forloop的前两个对象。其余的应该分为三类 像这样:Django 防止前两次迭代的循环计数,django,django-templates,Django,Django Templates,我试图以一种特殊的方式显示forloop的前两个对象。其余的应该分为三类 像这样: <div class="row"> Object 1 Object 2 - Object slug </div><!--/end first row with 2 objects--> <div class="row"> Object 3 Object 4 Object 5 </div><!--/e
<div class="row">
Object 1
Object 2 - Object slug
</div><!--/end first row with 2 objects-->
<div class="row">
Object 3
Object 4
Object 5
</div><!--/end row with 3 objects-->
<div class="row">
Object 6
Object 7
Object 8
</div><!--/end row with 3 objects-->
对象1
对象2-对象段塞
对象3
对象4
对象5
对象6
对象7
对象8
以下是我的模板代码:
{% for object in object_list %}
{% if forloop.first %}
<div class="row">
{{object.name}}
{% elif forloop.counter == 2 %}
{{object.name}} - {{object.slug}}
</div><!--/end first row with 2 objects-->
{% else %}
{% cycle '<div class="row">' '' '' %}
{{object.name}} - {{object.slug}}
{% cycle '' '' '</div><!--/end row with 3 objects-->' %}
{% endif %}
{% endfor %}
{%for object_list%}
{%if-forloop.first%}
{{object.name}
{%elif forloop.counter==2%}
{{object.name}-{{object.slug}
{%else%}
{%周期''''''%}
{{object.name}-{{object.slug}
{%周期''''''%}
{%endif%}
{%endfor%}
此代码不起作用,因为cycle标记计数第一和第二。我怎样才能解决这个问题?在我看来,您不应该在模板中这样做。您应该在视图中创建这样一个对象,然后进行迭代 例如,现在您有了
对象
,它是一个数组:
object = ['object1', 'object2', 'object3', 'object4' , 'object5', 'object6', '...']
我的想法是让这个物体看起来像这样:
object = (['object1', 'object2'], ['object3', 'object4' , 'object5'], [...])
这是我现在使用的代码。它似乎起作用了。在第一页上,前两篇文章被分组在一起,其余的被三篇分组。在其他页面上,所有文章按三个部分进行分组
{% for object in object_list %}
{% if forloop.first and page_number == 1 %}
<div class="row">
<div class="news-article">
{{ object.title }}
</div>
{% elif forloop.counter == 2 and page_number == 1 %}
<div class="news-article">
{{ object.title }}
</div>
</div><!-- /first row-->
{% else %}
{% cycle '<div class="row">' '' '' %}
<div class="news-article">
{{ object.title }}
</div>
{% endif %}
{% if page_number == 1 %}
{% if not forloop.counter == 1 and not forloop.counter == 2 %}
{% cycle '' '' '</div><!--/row-->' %}
{% endif %}
{% else %}
{% cycle '' '' '</div><!--/row-->' %}
{% endif %}
{% if not forloop.counter|divisibleby:"3" and forloop.last %}
</div><!--row.last-->
{% endif %}
{% endfor %}
{%for object_list%}
{%if-forloop.first和页码==1%}
{{object.title}}
{%elif forloop.counter==2,页码==1%}
{{object.title}}
{%else%}
{%周期''''''%}
{{object.title}}
{%endif%}
{%如果页码=1%}
{%if not forloop.counter==1,not forloop.counter==2%}
{%周期''''''%}
{%endif%}
{%else%}
{%周期''''''%}
{%endif%}
{%如果不是forloop.counter |可除数为:“3”和forloop.last%}
{%endif%}
{%endfor%}
您考虑过使用插件吗?当我在本地运行您的模板时,它的工作方式是您想要的,这是您真正的代码还是一个模拟的示例?