当数据库中该子句的数据为空时,我想忽略或跳过该子句,在我的情况下,有时 digital_exp_score 变量为空,但我需要按该变量进行过滤,正常的过滤器将如下所示:
review = Review.objects.get(id=review_id)
offers = OfferGeneric.objects.filter(
is_personalized=True,
digital_exp_score__gte=review.digital
)
但是当 digital_exp_score 为 Null 时,它不起作用,我想忽略这些情况并通过该条件,我该怎么做?
我尝试过 When 子句:
offers = OfferGeneric.objects.filter(
is_personalized=True,
When(digital_exp_score__isnull=False ,
then=(digital_exp_score__gte=review.digital)
),
)
和
offers = OfferGeneric.objects.filter(
is_personalized=True,
digital_exp_score__gte=When(
digital_exp_score__isnull=False,
then=review.digital
),
)
但两者都不起作用,我收到语法错误,这些方法仅适用于条件右侧的值?有什么方法可以检查条件左侧的值(DB值)?
像这样的东西是理想的:
offers = OfferGeneric.objects.filter(
is_personalized=True,
digital_exp_score__gte=review.digital if digital_exp_score is not None else pass
)
烙印99
慕斯709654
相关分类