use*_*125 11 django django-orm django-q
我想创建一些Django ORM过滤器查询的一部分,现在我可以这样做:
if some:
Obj.filter(
some_f1=some_v1,
f1=v1,
f2=v2,
f3=v3,
f4=v4,
...
)
else:
Obj.filter(
f1=v1,
f2=v2,
f3=v3,
f4=v4,
...
)
Run Code Online (Sandbox Code Playgroud)
我希望没有代码重复的东西像这样:
Obj.filter(
Q(some_f1=some_v1) if some else True, # what to use instead of True?
f1=v1,
f2=v2,
f3=v3,
f4=v4,
...
)
Run Code Online (Sandbox Code Playgroud)
Fli*_*imm 12
这是一个获得永远真正的Q对象的hacky方法:
always_true = ~Q(pk=None)
Run Code Online (Sandbox Code Playgroud)
这取决于主键不能为空的事实.