按日期分组对象

时间:2016-05-11 03:03:54

标签: django python-datetime django-1.9

clicks = SellerClick.objects.extra({'date' : "date(timestamp)"}).values('date').annotate(count=Count('timestamp'))

该模型有一个名为timestamp的日期时间字段正在使用。我首先将datetime字段转换为日期字段。然后剩下的就是猜测。我需要分组,然后计算每个日期的对象数。

因此,期望的结果将是日期,然后是计数,基于timestamp字段中该日期的对象数量。

2 个答案:

答案 0 :(得分:3)

我更喜欢使用annotate over extra

from django.db.models.expressions import RawSQL  

SellerClick.objects.annotate(
    date=RawSQL('date(date_joined)',[]),
).values('date').annotate(count=Count('date')))

答案 1 :(得分:1)

除了初始查询集外,你已经拥有了所有内容。你传递的额外sql不包含select,所以你需要给它一些动作。

clicks = SellerClick.objects.all()
    .extra({'date' : "date(timestamp)"})
    .values('date')
    .annotate(count=Count('timestamp'))

参考:StackOverflow: Count number of records by date in Django