Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从过去60天开始每天计算行数_Python_Django_Django Models_Django Orm - Fatal编程技术网

Python 从过去60天开始每天计算行数

Python 从过去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-

我想计算过去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-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。检查这里==>