如何在Django ORM查询中包含null结果

Poi*_*rks 2 python mysql django

我正在使用Django ORM系统.我有学生模型,每个学生都有自己喜欢的工作状态.就像很少有学生想在"Mahrashtra"州工作,其他人想在其他州工作.

让我们假设我想搜索那些喜欢工作状态为"加州"的学生.我做以下查询

result= Students.object.filter(prefered_state='California')
Run Code Online (Sandbox Code Playgroud)

当然,我得到了理想的结果,但我想包括那些尚未进入首选状态的学生.意味着学生状态为Null''.因此,没有任何方法可以指定除了使用OR语句之外的条件包含Null结果.因为我有许多其他领域的标准,我不想包括OR xyz为每个字段为空

gtl*_*ert 5

你可以用Q.请注意,此答案考虑了NULL值和空字符串.

from django.db.models import Q

states = ['California', '']
Item.objects.filter(Q(prefered_state__in=states)|Q(prefered_state__isnull=True))
Run Code Online (Sandbox Code Playgroud)