Показывать товары на основе slug категории в Django 3
Я создал категорию и подкатегорию в проекте, и они отображаются так, как я хотел, но теперь у меня возникли небольшие трудности с выводом товаров на страницу категории.
У меня есть родительская категория и подкатегория, но не во всех случаях родительская категория будет иметь подкатегорию.
#models.py #Модель категории
class Category(models.Model):
name = models.CharField(max_length=20)
slug = models.SlugField(max_length=25)
parent = models.ForeignKey('self', related_name='children', on_delete=models.CASCADE, blank=True, null=True)
class Meta:
verbose_name_plural = 'Categories'
ordering = ('name',)
def __str__(self):
return self.name
#Модель продукта
class Product(models.Model):
name = models.CharField(max_length=100)
slug = models.SlugField(max_length=110)
category = models.ForeignKey('Category', null=True, blank=True, on_delete=models.CASCADE)
#views.py
def home(request):
products = Product.objects.all().order_by('?')
categories = Category.objects.all()
featured_products = Product.objects.filter(is_featured=True)
context = { 'продукты':продукты, 'category':categories, 'featured_products':featured_products } return render(request, "store/home.html", context)
Ниже приведен мой HTML-код
<div class="container">
<nav class="main-nav">
<ul class="menu sf-arrows">
<li class=""><a href="{% url 'home-page' %}">Home</a></li>
<li class=""><a href="{% url 'about-page' %}">About</a></li>
<li class=""><a href="{% url 'home-page' %}">Services</a></li>
{% for category in category %}
{% if category.parent == None %}
{% if category.parent.children %}
<li><a href="{{category.get_absolute_url }}" class="sf-with-ul">{{category.name}}</a>
{% else %}
<li><a href="{{category.get_absolute_url }}" class="">{{category.name}}</a>
{% endif %}
<ul>
{% for subcategory in category.children.all %}
<li><a href="{{sucategory.slug}}">{{subcategory.name}}</a></li>
{% endfor %}
</ul>
</li>
{% endif %}
{% endfor %}
<li class=""><a href="{% url 'contact-page' %}">Contact</a></li>
</ul>
</nav>
</div>
Я хочу фильтровать продукты на основе родительской категории и подкатегории. Если выбрана родительская категория, то она должна вывести все товары, относящиеся к родительской категории, и то же самое для подкатегории. Помогите, пожалуйста, с функцией views.py для этого,