Используйте and, или условия при использовании Case,When
Кто-нибудь знает, как можно использовать условие 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' здесь не работает
Используйте 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'),
)
Используйте &
для AND двух объектов Q и |
для OR их.