У меня есть следующий запрос, по которому я получаю количество выполненных задач по неделям. Я хочу добавить также совокупное количество выполненных задач.
tasks = (Task.objects
.annotate(year=ExtractYear('due_on'))
.annotate(month=ExtractMonth('due_on'))
.annotate(week=ExtractWeek('due_on'))
.values('week', 'month', 'year')
.annotate(
due=Count('due_on')
).order_by('due_on')
)
Я пробовал это, аннотируя такой необработанный запрос, но это не работает.
tasks = (Task.objects.filter(
content_type__model='incometaxreturn'
)
.annotate(year=ExtractYear('due_on'))
.annotate(month=ExtractMonth('due_on'))
.annotate(week=ExtractWeek('due_on'))
.values('week', 'month', 'year')
.annotate(
due=Count('due_on'),
cum_due=RawSQL("select Count(due_on) from tasks_task where extract('week', due_on) > %s", (today().isocalendar()[1],))
).order_by('due_on')
)
Есть какие-нибудь советы, как лучше всего этого добиться?