我有一个日志对象,其中包含用户和日期等。
我想按用户分组,但只有每个用户的不同日期必须计入群组中。
类似的东西:
Log.objects.values('user').annotate(count=Count('date')).distinct("date)
所以最后我会计算每个用户在目的地日期的日志条目。
答案 0 :(得分:3)
根据您的评论,我认为这就是您想要的:
Log.objects.values('user').annotate(number_of_days=Count('date', distinct=True))
这将为您提供一个用户列表以及他们拥有一个或多个日志条目的相应天数。这不会给你哪些日期,只计算多少天。
保留原来的答案,如下所示:
我对这个问题并不十分清楚,但我认为以下两种情况之一涵盖了你想要的内容:
如果您希望在每个不同的日期对不同用户进行日志条目计数,这就是您所需要的:
Log.objects.values('date').annotate(number_of_users=Count('user', distinct=True))
这将为您提供一个列表,其中包含日期以及在该日期具有一个或多个日志条目的相应用户数。
如果您想要计算每个用户在每个不同日期创建的日志条目数量,这可能会有效,但我还没有尝试过:
Log.objects.values('date','user').annotate(number_of_log_entries=Count('id'))