2 回答
TA贡献1829条经验 获得超13个赞
您可以使用Q
对象 [Django-doc]来编码析取。a → b的逻辑等价是← a ∨ b:
from django.db.models import Q
review = Review.objects.get(id=review_id)
offers = OfferGeneric.objects.filter(
Q(digital_exp_score=None) |
Q(digital_exp_score__gte=review.digital),
is_personalized=True,
)
digital_exp_score或者我们可以简单地过滤掉不小于 review.digital NULL` 本身的对象. Django will then automatically include :
from django.db.models import Q
review = Review.objects.get(id=review_id)
offers = OfferGeneric.objects.filter(
~Q(digital_exp_score__lt=review.digital),
is_personalized=True,
)
这里波浪号 ( ~) 是条件的否定。
TA贡献1840条经验 获得超5个赞
我想这样就可以了
OfferGeneric.objects.exclude(digital_exp_score__isnull=true) \ .filter(is_personalized=Treu,digitial_score__gte=review.digital)
虽然我想它会与您的其他查询一起使用...因为我不认为 NULL 会通过大于测试...也许我误解了您想要做什么
根据您的评论,正确的查询是
from django.models import Q OfferGeneric.objects.filter(Q(OfferGeneric.digital_score__gte=review.digital) | Q(OfferGeneric.digital_score__isnull=True)).all()
添加回答
举报