Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 11, 2013 16:47:57

tibs
От:
Зарегистрирован: 2011-06-30
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Множественный фильтр

Подскажите, пожалуйста, как написать сложный фильтр, чтобы можно было выбрать всех рабочих, имя которых начинает на определенную букву из списка (т.е. хочу использовать сразу __in и __startswith)?

Сейчас делаю так:

mas=['A','B','C']
query = ' | '.join(j for j in ['Q(name__startswith=\'%s\'' %i for i in mas])
Worker.objects.filter(eval(query))



Офлайн

#2 Фев. 12, 2013 05:52:46

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Множественный фильтр

from operator import or_
mas="ABC"
query=reduce(or_, [Q(name__startswith=i) for i in mas])
Worker.objects.filter(query)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version