根据字典键生成Django查询集

2 投票
2 回答
2762 浏览
提问于 2025-04-16 13:57

我有一个字典,内容像这样:

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

我需要一个查询集,像这样:

Q(key1__icontains = val1) | Q(key2__icontains = val2)

谢谢!

2 个回答

1

这里有一个更实际的方法,因为我需要从一个密钥生成多个密钥。

query = None
for key, value in d.iteritems():
    if query is None:
        query = Q(**{key + "__icontains" : value})
    else:
        query |= Q(**{key + "__icontains" : value})
8
reduce(operator.or_, Q(**{key + '__icontains': val}) for (key, val) in D.iteritems())

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答