Множественные GET-запросы Django
Учусь Django, создавая интернет-магазин. Столкнулся с проблемой обработки множественных запросов. В общем нужно оформить несколько запросов. Вот код, после него поясню, что да как.
class Shop(ListView):
model = Product
template_name = 'app/shop.html'
context_object_name = 'shop'
paginate_by = 9
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['price'] = set((x for x in Product.objects.values_list('price', flat=True)))
return context
def get_queryset(self):
if self.request.GET.get('find'):
return Product.objects.filter(draft=False, name__icontains=self.request.GET.get('find'))
else:
return Product.objects.filter(draft=False)
В данном коде я в тупую прописал метод общего поиска товаров в функции get_queryset. Конечно, я могу начать писать IF'ами, но это же бред. Таким способом можно, конечно, если упороться, но тогда будет поиск только по одному запросу. Все остальные запросы уже будут проигнорированы. А мне нужно одновременно выбрать, например, и цвет, и размер (например ./?color=red&size=XL). Или же, так как у меня поиск по __icontains, написать в поле поиска "футболка", чтобы появились все товары, содержащие это слово, и далее выбрать бренд, цвет, размер. В итоге должно получиться ./?find=футболка&brand=adik&color=black&size=XL. Еще, желательно, сделать такие запросы, которые содержат несколько параметров. Например: ./?find=футболка&brand=adik,puma&color=black&size=XL&price=5000-10000,10001-15000. Надеюсь на помощь, ибо не смог найти инфу ни у нас, ни в англоязычном Интернете.