我有一个
bool
,如果它是True
,我想在我的查询中过滤一些东西,如果不是我不想过滤。
目前我的解决方案是这样的:
if my_boolean:
objects = Class.objects.filter(argument=valuexyz)...
else:
objects = Class.objects...
我真正的查询要长得多。我只是用它来简化。现在我的问题是我可以内联执行此操作吗?
喜欢:
objects = Class.objects.filter( if my_boolean: argument=valuexyz; else: no_filtering)
有没有办法以某种方式做到这一点?这将为我节省相当多的冗余代码行。
从我的角度来看,最好不要使用 else 语句。
只需将
objects
变量定义为 Class.objects.all()
,然后根据标志 my_boolen
进行过滤:
objects = Class.objects.all()
if my_boolen:
objects = objects.filter(argument=valuexyz)