Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 防止前两次迭代的循环计数_Django_Django Templates - Fatal编程技术网

Django 防止前两次迭代的循环计数

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

我试图以一种特殊的方式显示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><!--/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%}

您考虑过使用插件吗?当我在本地运行您的模板时,它的工作方式是您想要的,这是您真正的代码还是一个模拟的示例?