У меня есть какое-то поле даты в модели, и мне нужно, чтобы агрегировать количество строк в модели по диапазону дат.У меня есть, на примере - date1, date2, date3, date4, date5 Я могу получить номера строк для любого диапазона:
number1 = Model.objects.filter(date__range=(date1, date2)).aggregate(Count('id'))
number2 = Model.objects.filter(date__range=(date2, date3)).aggregate(Count('id'))
....
Затем мне нужно объединить эти под номера в один набор запросов.Я знаю, что я могу использовать: номер1 |номер2 |... или itertooks.chain, но мне нужен набор запросов, а не список или что-то еще.
Что бы вы мне предложили?
Дополнительная информация: Спасибо за ваши ответы.Но, похоже, я не был достаточно ясен.Что мне нужно, чтобы получить что-то вроде этого: 2 поля, диапазон данных и число.Кажется, невозможно получить номер записи в пределах интервала дат, используя объект Q.Мне удалось получить его с этим простым SQl:
sql1 = "Select COUNT(*) as count from table where date_created BETWEEN date1 and date2".
После того, как я использовал QuerySet extra:
qs=qs.extra(select={'number1': sql1, 'number2':sql2 ...}).
Итак, я получил набор запросов с полями number1, number2, .. и связанными с нимиценности.Но я хотел получить 2 поля:
data_range, number
range1, number1
range1, number1
и иметь много строк с данными.Я думаю, что я могу получить его с помощью запроса SQL с помощью UNION: SQL1 UNION sql2 UNION sql3 .. Кажется, это невозможно с Django ORM, но, возможно, я ошибаюсь?