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()
添加回答
舉報