我有一个查询集
queryset = Record.objects.filter(type__icontains='28').exclude..............
我想在我的过滤器中添加一些其他类型,例如type__icontains='28' , type__icontains='14', type__icontains='20'
等。
我该怎么做?请帮忙
答案 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
(它真的完整),你就可以轻松地将它们实现到你的代码中。
在您的问题中,您没有说明您是否尝试AND
或OR
。作为起点,您可以执行以下操作:
# AND
Q(type_icontains=28) & Q(type_icontains=14)
# OR
Q(type_icontains=28) | Q(type_icontains=14)