Юваль находится в правильных строках, но похоже, что вы хотите пройтись по списку картин дважды: один раз, чтобы отобразить имена (по три в строке), и один для описания. Это не так просто сделать на языке шаблонов.
Я бы посоветовал посмотреть, сможете ли вы что-то сделать с помощью CSS. Должна быть предусмотрена возможность присвоения класса именам и / или описаниям div, чтобы все имена плавали влево, а описания отображались в виде блоков внизу. Все еще сложно, хотя.
Кроме того, вы можете предварительно обработать список в своем представлении, чтобы разделить имена и описания на группы по три. Вы хотите получить такую структуру:
[
[name1, name2, name3],
[description1, description2, description3],
[name4, name5, name6],
[description4, description5, description6],
...
]
Так что вы можете попробовать сделать это:
painting_list = []
counter = 0
while counter < len(paintings):
painting_list.append([p.name for p in paintings[counter:counter+3])
painting_list.append([p.description for p in paintings[counter:counter+3])
counter += 3
и затем в вашем шаблоне:
{% for group in painting_list %}
<div class="names">{% for name in group.0 %}{{ name }} {% endfor %}</div>
<ul class="descriptions">
{% for description in group.1 %}
<li>{{ description }}</li>
{% endfor %}
</ul>
{% endfor %}