根据条件在 django 中激活/停用过滤

问题描述 投票:0回答:1

我有一个

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)

有没有办法以某种方式做到这一点?这将为我节省相当多的冗余代码行。

django django-database
1个回答
-1
投票

从我的角度来看,最好不要使用 else 语句。

只需将

objects
变量定义为
Class.objects.all()
,然后根据标志
my_boolen
进行过滤:

objects = Class.objects.all()
if my_boolen:
    objects = objects.filter(argument=valuexyz)
© www.soinside.com 2019 - 2024. All rights reserved.