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

时间:2015-07-06 01:48:42

标签: python django django-queryset

我有一个查询集

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

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

我该怎么做?请帮忙

1 个答案:

答案 0 :(得分:0)

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

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(它真的完整),你就可以轻松地将它们实现到你的代码中。

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

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

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