У меня есть модель:
class Event(models.Model):
start_date = DateTimeField()
end_date = DateTimeField()
Я хочу подсчитать все события, происходящие в один и тот же день, и включить это количество в поле аннотации daily_events
для каждого члена набора запросов. Я хочу решить это на стороне базы данных для скорости. Мой код до сих пор:
from django.db.models import F, Q, DateTimeField, Count
from django.db.models.functions import TruncDate
events = Event.objects.all()
events = events.annotate(
daily_events=Count('pk', filter=Q(start_date__date=TruncDate(F('start_date')))))
for event in events:
print(event.daily_events)
Например, у меня есть 4 события и первые 3 в один и тот же день, поэтому желаемый результат должен быть:
3
3
3
1
но текущий вывод неверен:
1
1
1
1
Любые советы?