django queryset过滤列表中的null

时间:2013-11-26 18:42:59

标签: django-queryset

我正在尝试创建一个查询来生成查询集,我希望查询搜索值列表,包括字段为NULL时。通常人们可以这样做:

search_query = search_query& (Q(class_ field _in = [“a”,“b”])| Q(class_ field _isnull = True))

但是在这种情况下,我希望传入一个值列表来生成列表,即

search_query = search_query& Q(class_ field _in = [x for alist中的x])

这样我可以根据表单输入分离传递的值。我想弄清楚是否有可能将Q(class_ field _isnull = True)表示为我可以传入的变量。我尝试过None,“None”,“”和“ NULL“没有成功。这是否可能,如果是这样,有谁知道怎么做?或者我是以错误的方式处理事情的?

非常感谢。

1 个答案:

答案 0 :(得分:0)

为什么不以不同的方式制作它:

for x in aslist:
   query = query & Q(class_field=x)
query = query & Q(class_field__isnull=True)

甚至是这样:

q = list()
for x in aslist:
   q.append(Q(class_field=x))
q.append(Q(class_field__isnull=True))
query=reduce(operator.or_,q)