Показать товары в определенной категории в html

У меня есть модель товаров и категорий, уже реализованная в models.py в приложении django.

В html шаблоне я хочу показать товары одной категории, которую я хочу определить в html, как category == example или что-то подобное.

class Product(models.Model):
category = models.ForeignKey(Category, related_name='products', on_delete=models.CASCADE)
vendor = models.ForeignKey(Vendor, related_name='products', on_delete=models.CASCADE)
title = models.CharField(max_length=255)

вот сниппет models.py, ниже - html сниппет, который я пытаюсь использовать

{% for product in category.products.all %}

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

Вы можете использовать фильтры в файле views.py

views.py

def yellow_products(request):
    y_p = Product.objects.filter(category="yellows")
    data = {'yellow_data':y_p}
    return render(request,'template.html', data)

в HTML

{% if yellow_data %}
    {% for product in yellow_data %}
       <p>product.id</p>
    {% endfor %}
{% endif %}

Другой пример

views.py

def specific_products(request):
    y_p = Product.objects.filter(category="yellows")
    g_p = Product.objects.filter(category="green")
    data = {'yellow_data':y_p,'green_data':g_p}
    return render(request,'template.html', data)

в HTML

{% if yellow_data %}
    {% for product in yellow_data %}
       <p>product.id</p>
    {% endfor %}

{% if green_data%}
    {% for product in green_data%}
       <p>product.id</p>
    {% endfor %}
{% endif %}

Пожалуйста, ознакомьтесь с этим учебником для получения подробной информации https://tutorial.djangogirls.org/en/django_orm/

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