2013-11-26 57 views
0

我试图创建一个查询来生成一个查询集,我希望查询搜索值的列表,包括当字段为NULL时。通常人们会做这样的事情:django queryset筛选列表中的null

SEARCH_QUERY = SEARCH_QUERY &(Q(class_ _in = “A”, “B”])| Q(class_ _isnull = TRUE))

然而,在这种情况下,我想在值的列表传递给生成列表即

SEARCH_QUERY = SEARCH_QUERY & Q(class_ 字段 _in = [X在ALIST X])

这样我就可以将依赖于表单输入的值传递给哪个方法。我试图弄清楚是否可以将Q(class_ 字段 _isnull = True)表示为我可以传入的变量。我尝试过无,“无”,“”和“NULL”,但没有成功。这甚至有可能,如果有的话,有人知道如何?还是我以错误的方式处理事情?

非常感谢。

回答

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)