Если очень грубо, то как-то так:
# ... Где-то здесь определяем quryset как нефильтрованный набор
title = request.GET.get('title')
price_min = request.GET.get('price_min')
price_max = request.GET.get('price_max')
if title:
quryset = quryset.filter(title=title)
if price_min and price_max:
quryset = quryset.filter(price__range=(price_min, price_max))
elif price_min:
quryset = quryset.filter(price__gte=price_min)
elif price_max:
quryset = quryset.filter(price__lt=price_max)
Главное не забывать
quryset =
и не писать if вместо elif для парных параметров, таких как price_min, price_max, и тогда всё заработает.