如何传递 Q 列表来过滤 OR 查找?
如何传递 Q 列表来过滤 OR 查找? 像这样:
q_list = [Q(xyz__isnull=True), Q(x__startswith='x')]?
如果没有清单,我会这样做:
Model.objects.filter(Q(xyz__isnull=True) | Q(x__startswith='x'))
How do I pass a list of Qs to filter for OR lookups? Something like:
q_list = [Q(xyz__isnull=True), Q(x__startswith='x')]?
Without a list I would do:
Model.objects.filter(Q(xyz__isnull=True) | Q(x__startswith='x'))
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用python的reduce()函数:
Use python's reduce() function:
Q 对象还有一个 add 方法,该方法接受另一个 Q 对象和一个 Q 连接器(AND 或 OR)。
我发现这在构建 OR 过滤器时很有帮助,并且我在我的博客上编写了一个更长的示例: "在 Django 中添加"Q 对象
Q objects also have an
add
method which takes another Q object and a Q connector (either AND or OR).I've found this to be helpful when constructing OR filters and I've written a longer example on my blog: "Adding" Q objects in Django