У меня есть что-то вроде:
{ 'key1' : val1, 'key2' : val2 }
И мне нужен набор запросов типа
Q(key1__icontains = val1) | Q(key2__icontains = val2)
Спасибо
reduce(operator.or_, Q(**{key + '__icontains': val}) for (key, val) in D.iteritems())
Есть более прагматичный подход, так как мне нужно генерировать различные ключи из одного.
query = None for key, value in d.iteritems(): if query is None: query = Q(**{key + "__icontains" : value}) else: query |= Q(**{key + "__icontains" : value})