Добрый день. Подскажите идею как организовать поиск с несколькими параметрами.
Поиск работает на ajax. Всего 7 полей для поиска. Нужно учитывать все варианты в каком порядке пользователь может начать поиск.
К примеру, обзову поля по номеру, поля 1 и 2; 1 и 2 и 3; 4 и 7; 7 и 4 и 1
Логика в чем, был вариант на каждое поле вешать событие и отправлять данные, во вью уже проверять какие есть и делать запросы в базу. Но с учетом того что пользователь может выбрать в любом порядке поля, было решено сделать для всех полей одно событие и отправлять все данные со всех полей, а потом уже на сервере проверять какие пустые какие пришли с данными. Вот тут и нужен совет, если есть 7 полей, то вариантов какие данные придут пустые, а какие нет, много.
И обычной проверкой if, получиться очень много кода.
Вопрос, есть ли вариант как сделать запрос в базу даже если переменная будет пуста, т.е. пришли данные с пустым полем, или как сделать так проверку, что бы не писать все варианты которые возможны.
К примеру:
var1 = request.GET.get('var1', None)
var2 = request.GET.get('var2', None)
var3 = request.GET.get('var3', None)
if var1 and var2 and var3:
snippets = Model.objects.filter(pole1=var1, pole2=var2, pole3=var3)
elif var1 and var2 and not var3:
snippets = Model.objects.filter(pole1=var1, pole2=var2)
elif var1 and not var2 and not var3:
snippets = Model.objects.filter(pole1=var1)
И так далее, как избежать такого варианта?