Шаблон Django: не показывать товар, если товар уже был показан

Правда, извините за беспокойный заголовок, мой случай немного сложен для объяснения (и я не так хорошо владею английским). Я постараюсь сделать все возможное.

У меня есть приложение на django, в котором пользователи могут сохранять парные продукты питания - первый - "продукт_к_замене", а второй - "продукт_заменитель". Но дело в том, что у "продукта_к_замене" может быть несколько "продуктов-заменителей". Вот как может выглядеть моя таблица БД "Избранное" (цифры - это идентификаторы продуктов) :

product_to_substitute_id substitute_product_id
3 5
3 50
3 45
58 124
12 98

Так что я хотел бы сделать на html-странице избранного: показать один раздел с "продуктом_к_заменителю" и второй раздел, который показывает все "заменяющие_продукты", сопряженные с "продуктом_к_заменителю".

Вот небольшой фрагмент моего кода:

{% for product in favorites %}
        {% if product.product_to_substitute %}

            ### Block where I want to show only once the product to substitute ###
            <section style="background-image: url('{{ product.product_to_substitute.image_url }}')">
                ...
            </section>


            ### Block where I want to show all the substitutes products that are paired with the product to substitute ###
            <section>
                <img class="img-fluid" src="{{ product.substitute_product.image_url }}" alt="..." />
            </section>

        {% endif %}
{% endfor %}

Посмотрев на пример таблицы, мой код сейчас показывает 5 парных блоков "продукт_к_заменителю" и "продукт_заменитель", чего я не хочу. Я бы хотел иметь 3 парных блока. Один для продукта_к_заменителю_ид "3" и два для продуктов_к_заменителю_ид "58" и "12".

Надеюсь, это имеет смысл...

Спасибо!

Вернуться на верх