基于dict键生成django查询集

时间:2011-03-18 10:44:57

标签: python django dictionary django-queryset

我有一个像这样的词典:

{
    'key1' : val1,
    'key2' : val2
}

我需要一个像

这样的查询集
Q(key1__icontains = val1) | Q(key2__icontains = val2)

由于

2 个答案:

答案 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})