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