From 48f7a82af1901eeb6553c04deba40d93c29551d2 Mon Sep 17 00:00:00 2001 From: Diego Calvo Date: Fri, 19 Mar 2021 11:24:28 +0100 Subject: [PATCH] categories by name --- products/utils.py | 6 +++++- products/views.py | 7 +++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/products/utils.py b/products/utils.py index eba2d0b..9b0d7d2 100644 --- a/products/utils.py +++ b/products/utils.py @@ -144,7 +144,11 @@ def ranked_product_search(keyword, shipping_cost=None, discount=None, categories # filter by category if categories is not None: - products_qs = products_qs.filter(category__name__in=categories) + query = Q() + for entry in categories: + query = query | Q(category__name__contains=entry) + products_qs = products_qs.filter(query) + # products_qs = products_qs.filter(category__name__in=categories) # filter by tags if tags is not None: diff --git a/products/views.py b/products/views.py index 0037ab3..682e626 100644 --- a/products/views.py +++ b/products/views.py @@ -163,7 +163,7 @@ def product_search(request): else: discount = None # category = request.GET.get('category', None) - categories = request.query_params.getlist('category') or None + categories = request.query_params.getlist('category[]') or None tags = request.GET.get('tags', None) price_min = request.GET.get('price_min', None) price_max = request.GET.get('price_max', None) @@ -183,7 +183,10 @@ def product_search(request): products_qs = Product.objects.filter(active=True) # filter by category if categories is not None: - products_qs = products_qs.filter(category__name__in=categories) + query = Q() + for entry in categories: + query = query | Q(category__name__contains=entry) + products_qs = products_qs.filter(query) # filter by tags if tags is not None: