Итерация шаблона Django / количество циклов в зависимости от условия - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь создать итерацию, подобную $i==0; $i++; из PHP в Django, на основе условия.

{% for item in event.products %}         
{% if item.category = "Treat" %}

Теперь - я хочу быть в состоянии сказать, сколько раз было выполнено это условие (категория = лечить) и как остановить цикл for после 2 элементов, которые соответствуют этому циклу.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Я согласен с @DRC, что эту бизнес-логику лучше всего выполнять в коде вашего представления, а не в шаблоне.

Если вам все еще нужно шаблонное решение:

{% regroup event.products by item.category as grouped_products %}

{% for group in grouped_products %}
    {% if group.grouper == "Treat" %}
        {% for item in group.list|slice:":2" %}
            {{ item.imageURL }}
        {% endfor %}
    {% endif %}
{% endfor %}

Документация для среза и перегруппировки .

0 голосов
/ 04 мая 2018
Система шаблонов

django не допускает прерывания для циклов и установки счетчиков, даже если в другом месте показано, как преодолеть это ограничение в некоторых случаях или как создать новые теги шаблона это может помочь вам, может быть, вы сможете заранее рассчитать свои требования и подготовить список для печати, нарезав его по своему усмотрению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...