Django ORM Как использовать аннотированное поле в фильтре - PullRequest
0 голосов
/ 04 ноября 2018

У меня есть набор запросов:

Event.objects.annotate(event_date=Func(F('start_date'), F('end_date'), Value('1 day'), function='generate_series'))

Теперь я хочу отфильтровать все мои события, где event_date> = value, но когда я пытаюсь сделать,

queryset.filter(event_date__gte=value) 

Я получаю ошибку: аргумент WHERE не должен возвращать множество ЛИНИЯ 1: ..., '1 день') AS "event_date" ОТ "api_event" ГДЕ генерировать_s ...

Я думаю, потому что, когда я пытаюсь отфильтровать event_date__gte, ORM устанавливает снова Func и не использует уже рассчитанное значение event_date

У вас есть идея, как использовать event_date в фильтре .?

Больше информации здесь: Как получить obj между двумя диапазонами дат для каждой даты

...