Filter Company Based On Category
I was doing the project on Django to get into it more deeply. I have a problem in the model part. There are models; Company, Product, Category. Company is simply the introduction p
Solution 1:
You can apply the filter:
Company.objects.filter(products__categories__slug=category_slug)
where category_slug it is the value of your current select Category.slug
details:
1) if we need to get Category
cat = Category.objects.get(slug=category_slug)
2) if we need get all Product in this category
product_list = Product.objects.filter(categories=cat)
or add double underscore to many2many models field name
product_list = Product.objects.filter(categories__slug=cat)
# ^^^^3) if need get Company for the product_list, filter by related_name of related model Product in the field FK on the Companycompany = models.ForeignKey('Company', related_name='products'
Company.objects.filter(products__in=product_list)
# ^^^^^^^or by category instance
cat = Category.objects.get(slug=category_slug)
Company.objects.filter(products__categories=cat)
or finaly by category slug value
Company.objects.filter(products__categories__slug=category_slug)
Post a Comment for "Filter Company Based On Category"