从一个示例中,您可以看到一个多OR查询过滤器:
Article.objects.filter(Q(pk=1) | Q(pk=2) | Q(pk=3))
例如,这将导致:
[<Article: Hello>, <Article: Goodbye>, <Article: Hello and goodbye>]
但是,我希望从列表创建此查询筛选器。如何做到这一点?
例如[1, 2, 3] -> Article.objects.filter(Q(pk=1) | Q(pk=2) | Q(pk=3))
发布于 2012-09-25 00:01:10
如果我们想要以编程方式设置要查询的数据库字段:
import operator
questions = [('question__contains', 'test'), ('question__gt', 23 )]
q_list = [Q(x) for x in questions]
Poll.objects.filter(reduce(operator.or_, q_list))
https://stackoverflow.com/questions/852414
复制相似问题