在Django中获取基于时间的模型统计信息

时间:2018-11-30 06:12:16

标签: python django datetime model statistics

我知道这不是django的问题,但我正在使用django模型,并希望有一个针对django的解决方案

假设我有一个这样的模型

class Foo(models.Model):
     type = models.IntegerField()
     timestamp = models.DateTimeField(auto_now_add=True)

现在最好的方法是对日期/时间上分布的所有类型(例如1)的对象进行计数
例如:get_stat(type=1)为我提供了有关在12/10/201813/10/201814/10/2018等上创建了多少个对象(类型1)的信息……

1 个答案:

答案 0 :(得分:2)

我认为您需要使用group by。查看此答案:How to query as GROUP BY in django?

@classmethod
def get_stat(cls, type):
    return cls.objects.filter(type=type).values('timestamp').annotate(
        count=Count('id')
    ).values('timestamp', 'count')

此功能就是您的例子。