繁体   English   中英

如何在 django 查询集中添加多个过滤器

[英]How to add multiple filters in django query set

我有一个查询集

queryset = Record.objects.filter(type__icontains='28').exclude..............

我还想在我的过滤器中添加一些其他类型,例如type__icontains='28' , type__icontains='14', type__icontains='20'等。

我怎样才能做到这一点? 请帮忙

您有两个选项需要决定使用哪一个,因为您的问题不是很完整。

IN 语法

这基本上是说明select values where <attribute> IN <set>

result = SomeModel.objects.filter(id__in=[28,14,20])

# same as
SELECT * FROM SomeModel WHERE SomeModel.id IN (28,14,20)

Q 对象

您将需要使用Q对象。 它们允许复杂的数据查询。 好消息是,一旦您阅读了django docs (它真的很完整),您应该能够轻松地将它们实现到您的代码中。

在您的问题中,您没有说明您是尝试执行AND还是OR 作为起点,您可以执行以下操作:

# AND
Q(type_icontains=28) & Q(type_icontains=14)

# OR
Q(type_icontains=28) | Q(type_icontains=14)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM