diff --git a/products/utils.py b/products/utils.py index c0f4c7e..1d53c49 100644 --- a/products/utils.py +++ b/products/utils.py @@ -144,7 +144,7 @@ def ranked_product_search(keyword, shipping_cost=None, discount=None, category=N # filter by category if category is not None: - products_qs = products_qs.filter(category=category) + products_qs = products_qs.filter(category__name__in=category) # filter by tags if tags is not None: diff --git a/products/views.py b/products/views.py index 7566d2a..a4e99bf 100644 --- a/products/views.py +++ b/products/views.py @@ -161,7 +161,8 @@ def product_search(request): discount = False else: discount = None - category = request.GET.get('category', None) + # category = request.GET.get('category', None) + category = 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) @@ -185,7 +186,7 @@ def product_search(request): if tags: products_qs = Product.objects.filter(tags=tags) if category: - products_qs = Product.objects.filter(category=category) + products_qs = Product.objects.filter(category__name__in=category) # serialize and list data serializer = ProductSerializer(products_qs, many=True) result_list = [dict(i) for i in serializer.data]