Есть ли способ получить список выражений запросов django (например, Q (first_name = "Jordan")
, где Q
is django.db.models.Q
) и побитовое ИЛИ их вместе?
Другими словами, у меня есть что-то вроде этого:
search_string = "various search terms"
И я хочу сделать это:
search_params = [Q(description__icontains=term) for term in re.split(r'\W', search_string)]
search_params = something_magical(search_params)
results = Record.objects.filter(search_params)
где search_params
теперь эквивалентно Q (description__icontains = "different") | Q (description__icontains = "search" | Q (description__icontains = "terms"
Я знаю, что это было бы возможно с такой функцией:
def something_magical(lst):
result = lst[0]
for l in lst[1:]
result |= l
return result
Так что мне интересно, встроена ли эта функция в Python (а я ' m предполагая, что он более оптимизирован, чем моя функция здесь).
Хотя меня это интересует для этого приложения, меня это интересует только теоретически.