search improvement

This commit is contained in:
Sam
2021-02-04 13:35:26 +00:00
parent 1f58661f76
commit 1441644b74

View File

@@ -1,10 +1,12 @@
import logging
import csv
import datetime
import operator
from django.shortcuts import render
from django.conf import settings
from django.core import serializers
from django.db.models import Q
# Create your views here.
from rest_framework import viewsets
@@ -141,23 +143,16 @@ def product_search(request):
result_set = set()
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)
for item in products:
result_set.add(item)
# search in tags
products = Product.objects.filter(tags=chunk)
for item in products:
result_set.add(item)
# search in category
products = Product.objects.filter(category=chunk)
for item in products:
result_set.add(item)
# search in attributes
products = Product.objects.filter(attributes=chunk)
name_search = Q(name=chunk)
description_search = Q(description=chunk)
tags_search = Q(tags=chunk)
category_search = Q(category=chunk)
attributes_search = Q(attributes=chunk)
query_list = [name_search, description_search, tags_search, category_search, attributes_search]
products = Product.objects.filter(reduce(operator.or_, query_list))
for item in products:
result_set.add(item)