一尘不染

Django模板{%for%}标签每第4个元素添加一次li

django

我需要在模板中表示集合,并在其中包装每四个元素

<li></li>

模板应如下所示:

<ul>
    <li>
         <a></a>
         <a></a>
         <a></a>
         <a></a>
    </li>
    <li>
         <a></a>
         <a></a>
         <a></a>
         <a></a>
    </li>
    <li>
         <a></a>
         <a></a>
         <a></a>
         <a></a>
    </li>
</ul>

因此,我需要在{%for%}中执行此操作

{% for obj in objects %}
 {#add at 1th and every 4th element li wrap somehow#}
    <a>{{object}}</a>
 {# the same closing tag li#}
{% endfor %}

阅读 473

收藏
2020-03-31

共1个答案

一尘不染

以下应该使用内置模板标签解决你的问题:

<ul>
    <li>
    {% for obj in objects %}
        <a>{{ obj }}</a>

    {# if the the forloop counter is divisible by 4, close the <li> tag and open a new one #}
    {% if forloop.counter|divisibleby:4 %}
    </li>
    <li>
    {% endif %}

    {% endfor %}
    </li>
</ul>
2020-03-31