如何使用按日期时间字段排序的查询集中的 items.count() 填充列表
我很难制定标题,所以如果您有更好的标题,请对其进行编辑:)
我正在尝试使用 pygooglechart 显示一些统计数据。 我正在使用 Django 从数据库中获取数据库项目。
数据库项目有一个我想“排序”的日期时间字段。 我真正想要的是填充这样的列表。
data = [10, 12, 51, 50]
其中每个列表项是一小时内数据库项的数量(计数)。 假设我执行一个查询来获取过去 72 小时内的所有项目,我想将每小时的计数收集到一个列表项中。 有人有好的方法吗?
I had a hard time formulating the title, so please edit it if you have a better one :)
I'm trying to display some statistics using the pygooglechart. And I am using Django to get the database items out of the database.
The database items has a datetime field wich i want to "sort on". What i really want is to populate a list like this.
data = [10, 12, 51, 50]
Where each list item is the number(count) of database items within an hour. So lets say i do a query that gets all items in the last 72 hours, i want to collect the count of each hour into a list item. Anybody have a good way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
假设您运行的是 Django 1.1 或最近的版本,您可以使用新的 聚合特征。 类似于:
这实际上为您提供了一个字典列表:
但是编写列表理解来获得您想要的格式应该相当容易。
评论后编辑:如果您使用的是 1.0.2,最有效的做法就是回退到原始 SQL。
Assuming you're running Django 1.1 or a fairly recent checkout, you can use the new aggregation features. Something like:
This actually gets you a list of dictionaries:
but it should be fairly easy to write a list comprehension to get the format you want.
Edited after comment: If you're on 1.0.2, the most efficient thing to do is to fall back to raw SQL.
django 聚合
django aggregation