diff --git a/products/views.py b/products/views.py index 1e2888a..9a3898c 100644 --- a/products/views.py +++ b/products/views.py @@ -141,17 +141,15 @@ def product_search(request): # save results result_set = set() # split query string into single words - chunks = query_string.split('+') + chunks = query_string.split(' ') + # import ipdb; ipdb.set_trace() for chunk in chunks: - # search in name - products = Product.objects.filter(name=chunk) - for item in products: - result_set.add(item) - # search in description - products = Product.objects.filter(description=chunk) + # search inside name and description + products = Product.objects.filter(Q(name__icontains=chunk) | Q(description__icontains=chunk)) for item in products: result_set.add(item) + # search in tags products = Product.objects.filter(tags=chunk) for item in products: @@ -164,9 +162,8 @@ def product_search(request): products = Product.objects.filter(attributes=chunk) for item in products: result_set.add(item) - # serialize and respond - product_serializer = ProductSerializer(result_set) + product_serializer = ProductSerializer(result_set, many=True) return Response(data=product_serializer.data) except Exception as e: return Response({"errors": {"details": str(type(e))}})