From 742f78b4b6fdc256e61e9b7f177e07730064d650 Mon Sep 17 00:00:00 2001 From: Sam Date: Tue, 9 Feb 2021 12:20:01 +0000 Subject: [PATCH] improvemets to product search --- products/views.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) 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))}})