我正在尝试创建一个查询来生成查询集,我希望查询搜索值列表,包括字段为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“没有成功。这是否可能,如果是这样,有谁知道怎么做?或者我是以错误的方式处理事情的?
非常感谢。
答案 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)