Форум сайта python.su
Подскажите, пожалуйста, как написать сложный фильтр, чтобы можно было выбрать всех рабочих, имя которых начинает на определенную букву из списка (т.е. хочу использовать сразу __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))
Офлайн
from operator import or_ mas="ABC" query=reduce(or_, [Q(name__startswith=i) for i in mas]) Worker.objects.filter(query)
Офлайн