У меня есть модель продукта и модель категории продукта. Продукты связаны с категорией продукта атрибутом категории. Я хочу создать запрос, отображающий ТОЛЬКО продукты, относящиеся к категории, когда веб-страница отображается для этой конкретной категории.
При настройке моих представлений я получаю ошибку атрибута, говоря о представлении. не имеет атрибута слаг.
Модели:
class ProductCategory(models.Model):
title = models.CharField(max_length=200)
slug = models.SlugField()
parent = models.ForeignKey('self', blank=True, null=True,
related_name='children', on_delete=models.PROTECT)
class Product(models.Model):
title = models.CharField(max_length=100)
category = models.ForeignKey(ProductCategory, related_name='ProductsCategory', null=True, blank=True,
on_delete=models.CASCADE)
slug = models.SlugField(blank=True)
description = models.TextField()
price = models.DecimalField(decimal_places=2, max_digits=6)
image = models.ImageField(upload_to='products/', null=True, blank=True)
Просмотры:
class ProductListView(ListView):
look_up = 'slug'
template_name = 'products/products.html'
def get_queryset(self, *args, **kwargs):
category = ProductCategory.objects.get(self.slug)
products = Product.filter(category=category)
return products
URL:
urlpatterns = [
path('', CategoryView.as_view(), name='shop'),
path('<slug:product_category>/', ProductListView.as_view(), name='products'),
path('<slug:product_category>/<slug:product>/', ProductDetailView.as_view(), name='detail'),
]