按类别过滤产品

时间:2014-09-25 08:39:32

标签: python django listview

我有两个型号。产品和类别。每个产品都有一个类别,类别有一个slug。现在,当您调用网址'/catalog/adventure/'时,您应该会看到一个包含所有“冒险”类别产品的列表,当您编写“操作”时,您应该会看到操作产品等。

所以我做了一个listView

class BookListView(ListView):
    template_name = 'project/shop/product-list-view.html'

    def get_queryset(self):
        category = get_object_or_404(Category, path=self.kwargs['slug'])

        products = Product.objects.all().filter()

        return products

我需要写什么.filter()?

2 个答案:

答案 0 :(得分:0)

在这里查看您的模型会有所帮助,但假设Product有一个ForeignKey to Category,它应该简单如下:

    products = Product.objects.all().filter(category=category)

答案 1 :(得分:0)

假设Product有一个ForeignKey to Category,我宁愿建议使用与related_name的向后关系:

class Product(models.Model):
   ...
   category = models.ForeignKey(Category, related_name='products')
   ...

并在您看来:

products = category.products.all()

不需要过滤器。