Django聚合获取每个项目视图的用户数

我有一个用于跟踪用户查看项目的模型,它具有对用户和项目的外键引用。一个例子看起来像

project user
1        1
1        2
1        3
2        1
2        2

我想要实现的是每个项目的视图计数,因此在上面的示例中,项目1将为3,项目2将为2。

我在下面尝试,但是它计算了每个用户实例,如何获得每个项目的每个用户实例?

projects = ProjectViews.objects.all().annotate(view_count=Count('user'))
xianjian3 回答:Django聚合获取每个项目视图的用户数

尝试做:

fetchList({}) // should have a parameter

作为输出,您应该得到:

projects = ProjectViews.objects.annotate(view_count=Count('user')).values('id','view_count')

“ id”是您的[{'id': 1,'view_count': 3},{'id': 2,'view_count': 2}] Project

,
projects = ProjectViews.objects.values('project').annotate(count=Count('user'))

这应该很好

,

这对我有用:

projects = ProjectViews.objects.values('project__id').annotate(view_count=Count('user__id',distinct=True)).values('view_count','project__id','project__name','project__owner__username','project__created','project__description').order_by("-view_count")[:10]

如果有人知道一种更好的方法来产生相同的结果,请告诉我。

本文链接:https://www.f2er.com/3052821.html

大家都在问