django 在使用Case,When时使用and,or条件

w8f9ii69  于 2023-02-05  发布在  Go
关注(0)|答案(1)|浏览(145)

有人知道在下面的查询中如何使用AND条件吗?

q = Food.objects.all().annotate(open=Case(When(days__day=today,then='blahblah'),When(start_time__lte=now and end_time__gte=now,then='blabla')))

在第二个when上,我想检查now值是否在开始时间和结束时间之间,但似乎“and”关键字在那里不起作用

g0czyy6m

g0czyy6m1#

使用Q对象,以便:

from django.db.models import F, Q, When

q = Food.objects.annotate(open=Case(
    When(days__day=today, then='blahblah'),
    When(Q(start_time__lte=now) & Q(end_time__gte=now), then='blabla'),
)

使用&对两个Q对象进行AND运算,使用|对它们进行OR运算。

相关问题