【发布时间】:2017-05-15 13:27:01
【问题描述】:
我想统计过去 60 天内每天的行数并将其作为列表返回。
models.py
class Error(models.Model):
name = models.CharField(max_length=250)
adding_time = models.DateTimeField(auto_now=True)
在我的数据库中:
name | adding_time
------------------------------------
error_1 | 2017-04-10 10:47:33.204518
error_2 | 2017-04-10 11:01:12.339936
error_3 | 2017-04-21 08:40:56.862731
error_4 | 2017-04-21 08:45:50.235212
我想要实现的是当天的日期列表和计数行:
[{'count': 2, 'adding_date': '2017-04-10'}, {'count': 2, 'adding_date': '2017-04-21'}]
到目前为止,我做了这样的事情:
last_30_days_errors = Error.filter(adding_time__lte=datetime.datetime.today(),adding_time__gt=datetime.datetime.today()-datetime.timedelta(days=60))
errors_dates = last_30_days_errors.extra({'adding_date': 'date(adding_time)'}).values('adding_date')
它正在返回:
>>> [{'count': 1, 'adding_date': '2017-04-10'}, {'count': 1, 'adding_date': '2017-04-10'}, {'count': 1, 'adding_date': '2017-04-21'}, {'count': 1, 'adding_date': '2017-04-21'}]
我可以解析它,但是有什么方法可以通过查询来完成吗? 谢谢你。
【问题讨论】:
标签: python django django-models django-orm