Я работаю с моделью, подобной модели, которая имеет DateTimeField (auto_now_add = True), чтобы фиксировать дату публикации (pub_date). Это выглядит примерно так:Группировка записей модели Django по дням с использованием поля datetime
Я хочу, чтобы сделать запрос, который подсчитывает, сколько сообщений статьи или записи, которые были добавлены в день. Другими словами, я хочу запрашивать записи и группировать их по дням (и, в конечном счете, месяц, час, секунда и т. Д.). Это будет выглядеть примерно следующее в SQLite оболочки:
select pub_date, count(id) from "myapp_article"
where id = 1
group by strftime("%d", pub_date)
;
который возвращает что-то вроде:
2012-03-07 18:08:57.456761|5
2012-03-08 18:08:57.456761|9
2012-03-09 18:08:57.456761|1
Я не могу показаться, чтобы выяснить, как получить этот результат с Django QuerySet. Я знаю, как получить a similar result using itertools.groupby, но это невозможно в этой ситуации (объяснение следует).
Конечный результат этого запроса будет использован в графике, показывающем количество сообщений в день. Я пытаюсь использовать пакет Django Chartit для достижения этой цели. Chartit ставит ограничение на источник данных (DataPool). Источник должен быть Model, Manager или QuerySet, поэтому использование itertools.groupby не является опцией, насколько я могу судить.
Итак, вопрос в том, как ... Как мне группировать или суммировать записи по дням и заканчивать с помощью объекта QuerySet?
что, если мы хотим, чтобы получить все записи, кроме считать для каждого pub_date в том же запросе? –