4
Я хочу, чтобы запросить мою модель Django с фильтром, как это:Сложные фильтры в Django модели
(pseudo code)
field1values = ['val11','val12']
field2values = ['val21','val22']
result = (field1 == 'val11' | field1 == 'val12') & (field2 == 'val21' | field2 == 'val22')
Если бы я должен был запросить только field1 здесь код может выглядеть следующим образом:
clauses = []
for item in field1values:
clauses.append(MyModel.objects.filter(field1=item))
result = reduce(lambda x, y: x | y, clauses)
Но я не могу понять, как создать фильтры для комплексного предиката, который я хочу
Спасибо за быстрый ответ. Можно ли переписать это, если значения поступают из списка. Я не знаю, что значения в списке так не могут жестко закодировать их –
в порядке, упомянутый вами пункт IN хорошо зарекомендовал себя для списков. result = MyModel.objects.filter (filed1__in = field1values). А затем result = result.filter (filed2__in = field2values). благодаря –