我有一个包含很多字段的模型。我想构建一个查询集,从预定义的字段列表中选择具有空白字段的对象。 (任何字段,不是全部)
说:
fields=['a','b','c','d','e','f','g','h','i','j','k']
我会写
model.objects.filter(Q(a==Null) | Q(b==Null) | Q(c==Null) ...
有没有更好的办法?
请您参考如下方法:
这个怎么样?
qObj = None
for field in fields:
newQ = Q(**{field : Null})
if qObj is None:
qObj = newQ
else:
qObj = qObj | newQ
我不喜欢 qObj = None 和后续检查,但在构建 Q 对象时我不知道有什么方法可以绕过它。不过,Q(**{field: Null}) 可能正是您要寻找的一般内容。
