Java UDP сокет неблокирующий?

Как и предыдущий answera, но немного проще, без лямбда:

filter_kwargs = {
    'field_a': 123,
    'field_b__in': (3, 4, 5, ),
}

Чтобы отфильтровать эти два условия с помощью OR:

Item.objects.filter(Q(field_a=123) | Q(field_b__in=(3, 4, 5, ))

Чтобы получить тот же результат программно:

list_of_Q = [Q(**{key: val}) for key, val in filter_kwargs.items()]
Item.objects.filter(reduce(operator.or_, list_of_Q))

(для ясности здесь разбиты на две строки)

operator находится в стандартной библиотеке: import operator From docstring:

< blockquote>

or_ (a, b) - То же, что и | b.

Для Python3 сокращение не входит в стандартную библиотеку: from functools import reduce


PS

Не забудьте сделать конечно list_of_Q не пуст - reduce() задохнется в пустом списке, ему потребуется хотя бы один элемент.

0
задан avermaet 19 March 2019 в 15:22
поделиться