Python 从过去60天开始每天计算行数
我想计算过去60天每天的行数,并将其作为列表返回 型号.pyPython 从过去60天开始每天计算行数,python,django,django-models,django-orm,Python,Django,Django Models,Django Orm,我想计算过去60天每天的行数,并将其作为列表返回 型号.py class Error(models.Model): name = models.CharField(max_length=250) adding_time = models.DateTimeField(auto_now=True) 在数据库中,我有: name | adding_time ------------------------------------ error_1 | 2017-
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'}]
我可以解析它,但是有什么方法可以通过查询来解析它吗?
多谢各位 试试这个
from django.db.models import Count
last_30_days_errors.extra({'adding_time':"date(adding_time)"}).values('adding_time').annotate(count=Count('id'))
试试这个
from django.db.models import Count
last_30_days_errors.extra({'adding_time':"date(adding_time)"}).values('adding_time').annotate(count=Count('id'))
工作非常感谢。工作非常感谢。不应使用上述答案中使用的.extra。检查此处==>不应使用上述答案中使用的.extra。检查这里==>