2016-01-28 124 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))