我有一个像这样的词典:
{
'key1' : val1,
'key2' : val2
}
我需要一个像
这样的查询集Q(key1__icontains = val1) | Q(key2__icontains = val2)
由于
答案 0 :(得分:8)
reduce(operator.or_, Q(**{key + '__icontains': val}) for (key, val) in D.iteritems())
答案 1 :(得分:0)
有一种更实用的方法,因为我需要从一个生成各种密钥。
query = None
for key, value in d.iteritems():
if query is None:
query = Q(**{key + "__icontains" : value})
else:
query |= Q(**{key + "__icontains" : value})