diff --git a/products/views.py b/products/views.py index 7cfbdd2..f2288fb 100644 --- a/products/views.py +++ b/products/views.py @@ -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)