Для поля 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 %}