implemented basic filter creation during product search

This commit is contained in:
Sam
2021-02-09 13:07:56 +00:00
parent 742f78b4b6
commit 9be0971fb8
4 changed files with 26 additions and 8 deletions

View File

@@ -17,12 +17,13 @@ from rest_framework.decorators import api_view, permission_classes
import requests
from products.models import Product
from products.serializers import ProductSerializer
from products.serializers import ProductSerializer, TagFilterSerializer
from companies.models import Company
from history.models import HistorySync
from back_latienda.permissions import IsCreator
from .utils import extract_search_filters
from utils.tag_serializers import TaggitSerializer
logging.basicConfig(
filename='logs/product-load.log',
@@ -142,7 +143,6 @@ def product_search(request):
result_set = set()
# split query string into single words
chunks = query_string.split(' ')
# import ipdb; ipdb.set_trace()
for chunk in chunks:
# search inside name and description
@@ -162,8 +162,10 @@ def product_search(request):
products = Product.objects.filter(attributes=chunk)
for item in products:
result_set.add(item)
# extract filters from result_set
filters = extract_search_filters(result_set)
# serialize and respond
product_serializer = ProductSerializer(result_set, many=True)
return Response(data=product_serializer.data)
return Response(data={"filters": filters, "products": product_serializer.data})
except Exception as e:
return Response({"errors": {"details": str(type(e))}})