【发布时间】:2012-03-09 16:58:11
【问题描述】:
我正在使用类似文章的模型,该模型具有 DateTimeField(auto_now_add=True) 来捕获发布日期 (pub_date)。如下所示:
class Article(models.Model):
text = models.TextField()
pub_date = models.DateTimeField(auto_now_add=True)
我想做一个查询,计算每天添加了多少文章帖子或条目。换句话说,我想查询条目并按天(最终按月、小时、秒等)对它们进行分组。这在 SQLite shell 中类似于以下内容:
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) 施加了约束。源必须是模型、管理器或查询集,因此据我所知,使用 itertools.groupby 不是一个选项。
所以问题是...... 我如何按天对条目进行分组或聚合并最终得到一个 QuerySet 对象?
【问题讨论】:
标签: django django-models django-aggregation