Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Веб-разработка и фреймворки > Постепенная фильтрация Django


Автор: barcelona 24.10.2016, 11:50
Здравствуйте!

Есть форма поиска, с неё могут получаться 5 параметров: q1, q2, q3, q4 и q5. 5 параметров = 5 полей модели, по которым может проходить фильтрация. Можно ли в django как-то написать постепенную фильтрацию, т.е. применение фильтров один за другим? Такой вариант

Код


if q1 and q2:
  items = Object.objects.filter(field1=q1, filed2=q2)
elif q1:
  items = Object.objects.filter(field1=q1)
elif q2:
  items = Object.objects.filter(field2=q2)
...


не подходит, потому что параметров может быть много, неудобно их все так перебирать. Хотелось бы что-то вроде (передаю идею):

Код


o = Object.objects

if q1:
  o = o.filter(field1=q1)

if q2:
  o = o.filter(field2=q2)

items = o.execute()


Можно ли реализовать что-то подобное?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)