0

いくつかの要素のリストを出力する配列があります。これらの要素を「4」のグループに印刷したいと思います。これは、配列に 10 個の要素がある場合です。次に、テンプレートで最初<div>に最初の 4 つの要素を<div>表示し、次に次の 4 つの要素を表示します。等々。

PHPで印刷するのと同じように印刷しようとしましたが、ここでは機能しないので、それを行う方法を提案してください。

c.list には 9 つの製品があり、上で述べたようにそれらを表示したいと思います。

{% if c.list|length >= 1 or c.list|length < 5 %}
        {% for p in c.list %}

        <div class="dis_box1">

        <div class="item_imagebox_01"><a href="/shop/product/{{p.title}}"><img style ="width:145px;height:190px;"alt="" src="{{ MEDIA_URL }}{{p.image}}"></a>
        <div class="img_line1"></div>
        </div>

        <div class="left"><span class="heart_text1"><a href="/shop/product/jhgjgj/">{{p.title}}</a></span></div>

            </div> 

        {% endfor %}
{% endif %}
4

1 に答える 1

2

これは、あなたが実際に行うべき仕事の種類です。

あなたの見解では:

list_by_fours = []
list_len = len(c.list)
last_point = 0
next_point = 4

while last_point < list_len:
  if next_point > list_len:
    next_point = list_len
  list_by_fours.append(c.list[last_point:next_point])
  last_point += 4
  next_point += 4

#Make sure you add list_by_fours to the template context

次に、テンプレートで:

{% for bucket in list_by_fours %}
        {% for p in bucket %}
             ...
        {% endfor %}
{% endif %}

itertools やその他の巧妙なトリックを使用してこれを行う方法があると確信していますが、これはクリーンで初心者にとって理解しやすいものです。

于 2012-12-12T18:27:15.857 に答える