У меня есть 3 модели в Django, которые выглядят следующим образом:
class Category(models.Model):
name = models.CharField(max_length=100, unique=True)
slug = models.SlugField(max_length=100, unique=True)
class Subcategory(models.Model):
name = models.CharField(max_length=100)
slug = models.SlugField(max_length=100, unique=True)
category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name='subcategories')
class Product(models.Model):
name = models.CharField(max_length=200, unique=True)
category = models.ForeignKey(Subcategory, on_delete=models.CASCADE, related_name='products')
slug = models.SlugField(max_length=150, unique=True)
Функция просмотра, которую я хочу изменить в данный момент, выглядит следующим образом:
def product_list(request, category_name):
subcategory = get_object_or_404(Subcategory, slug=category_name)
subcategory_name = subcategory.name
product_list = subcategory.products.all()
context = {
'name':subcategory_name,
'product_list':product_list,
}
return render(request, 'products/product_list.html', context)
В одной из моих html шаблонов каждая категория отображается вместе с подкатегориями под ним. Если кто-то нажимает на название категории вместо подкатегории под названием этой категории, я хочу, чтобы функция представлений отображала все продукты, относящиеся к этой категории, а не только одну подкатегорию в данной категории. Я могу создать отдельное представление для этого, но я хочу знать, есть ли способ сделать это в той же функции представления.