1
для создания некоторых запросов я использую этот код:AutoGenerate Джанго запрос с Q
query_words = ['word1', 'word2', 'word3', ...]
query_array = [Q(text__icontains=w) for w in query_words]
try:
query = query_array.pop()
for q in query_array:
query |= q #or query &= q
result = SomeModel.objects.filter(query)
except:
result = SomeModel.objects.none()
Я уверен, что есть способ, чтобы написать это более компактным. Как? Я пытался использовать функцию уменьшения:
...
query = reduce(lambda res, q: res |= q, query_array, query_array.pop())
...
Но я получил ошибку синтаксиса. Что случилось?
где or_ идет от как метода. можете ли вы дать некоторые рекомендации. – drabo2005
@ abda2005 http://docs.python.org/2/library/operator.html –