2016-01-28 123 views
2

我正在使用Django ORM系統。我有學生的榜樣,每個學生都有他/她最喜歡的工作狀態。像「Mahrashtra幾個學生想工作」如何在Django ORM查詢中包含空結果

國家與其他國家想工作在其他一些國家。讓我們假設我要尋找那些誰首選的工作狀態,學生的加州。我下面的查詢

result= Students.object.filter(prefered_state='California') 

當然我會得到理想的結果,但我想包括那些還沒有進入他們的首選狀態的結果的學生意味着學生與狀態''。所以沒有辦法指定包括除使用 stat之外的標準的空結果EMENT。因爲我有許多其他領域的更多標準,我不想包括或每個字段的xyz爲空

回答

5

你可以使用Q。請注意,這個答案考慮了NULL值和空字符串。

from django.db.models import Q 

states = ['California', ''] 
Item.objects.filter(Q(prefered_state__in=states)|Q(prefered_state__isnull=True)) 
+0

難道沒有比用品質對象或表達任何其他方式。我的意思是,除了preferred_state之外,我還有大約10個其他條件,所以我覺得它會更好。如果我可以簡單地使用任何函數或類似的東西,我可以簡單地提及,我還希望爲每個條件包含Null結果。謝謝 –

+1

@PointNetworks,編寫自己的函數爲Q從你創建過濾器。 Q是django ORM抽象的底層。 –

+0

謝謝大家 –

0
from django.db.models import Q 

result= Students.object.filter(Q(prefered_state='California')|Q(prefered_state__is_null=True))