2015-07-06 64 views
-1

我有一個查詢設置在Django查詢如何添加多個過濾器設置

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

我也想加入一些其他類型的我像過濾器等type__icontains='28' , type__icontains='14', type__icontains='20'

我怎麼能這樣做?請幫忙

+1

And or Or?如果或者,您可能正在尋找一個Q對象:https://docs.djangoproject.com/en/1.8/ref/models/querysets/#django.db.models.Q – NightShadeQueen

回答

0

你有兩個選擇你需要決定使用哪一個,因爲你的問題不是很完整。

語法

這基本上說明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) 
相關問題