Для поля if Loop ManyToMany Django

Как я могу запросить manytomanyfield в шаблоне Django? Например, этот оператор if не работает, но он показывает, что я хотел бы сделать:

Model:
class Product(models.Model):

    Category = models.ManyToManyField(Category)


Template:

{% for p in Product %}
      {% if p.Category_id == 6 %}
             
         {{p.id}}

       {% endif %}
{% endfor %}

Я не знаю фактического случая использования. Вы не указали view. Предполагается, что в шаблоне django products - это кверисет. например products= Product.objects.all(). Вот как вы обнаружите экземпляр Category с id=6 для всех товаров в шаблоне django.

{% for p in products %}
    {% for category in p.Category.all %}
        {% if category.id == 6 %}
             {{p.id}}
        {% endif %}
    {% endfor %}
{% endfor %}

Я думаю, что лучше фильтровать ваш набор запросов в views.py как

products = Product.objects.filter(Category__id=6)

затем пройдитесь по этому набору запросов в цикле template

{% for p in products %}
         {{p.id}}
{% endfor %}
Вернуться на верх