#django #django-templates
#django #django-шаблоны
Вопрос:
У меня есть раздел for в моем шаблоне:
{% for image in gallery.images.all %}
<div id="image{{ image.id }}" class="frame">
<img src="{{ image.url_125x125 }}" alt="{{ image.name }}" />
</div>
{% endfor %}
Я хочу разделить этот раздел forloop на части, каждая из которых содержит 5 элементов, например, вот так:
{% for image in gallery.images.all|slice:"5:" %}
<div id="image{{ image.id }}" class="frame">
<img src="{{ image.url_125x125 }}" alt="{{ image.name }}" />
</div>
{% endfor %}
{% for image in gallery.images.all|slice:"5:5" %}
<div id="image{{ image.id }}" class="frame">
<img src="{{ image.url_125x125 }}" alt="{{ image.name }}" />
</div>
{% endfor %}
{% for image in gallery.images.all|slice:"10:5" %}
<div id="image{{ image.id }}" class="frame">
<img src="{{ image.url_125x125 }}" alt="{{ image.name }}" />
</div>
{% endfor %}
etc...
Но сейчас я не знаю, сколько изображений в галерее. Как сделать это автоматически? Я знаю, что это что-то вроде forloop.counter, но я не знаю как 🙂 forloop.counter по модулю 5?
Комментарии:
1. Какова цель такого разделения? Разбивка на страницы? Затем вы можете попробовать Paginator из django. Вы не можете выполнять арифметические операции по модулю в шаблонах django.
2. нет, я хочу показывать только 5 изображений одновременно и использовать jquery для отображения следующего
3. Возможно, вам стоит подумать о написании пользовательского тега.
Ответ №1:
не могли бы вы просто разделить его на части в вашем представлении? заполнять список списками из 5 элементов, пока не закончится? Затем в вашем шаблоне вы просто перебираете каждый из этих 5 фрагментов раздела???
Комментарии:
1. Да, я думаю об этом, но я хотел этого избежать.