小编Jea*_*her的帖子

Django,如何在单个查询集中进行多个注释

我目前正在尝试在Django中为User模型注释两个不同数量的喜欢.

这是我用来返回所需querySet的代码

def get_top_user(self):
    return User.objects. \
        annotate(guide_like=Count('guidelike')).\
        annotate(news_like=Count('newslike')).\
        values_list('first_name', 'last_name', 'guide_like','news_like').\
        order_by('-guide_like')
Run Code Online (Sandbox Code Playgroud)

但是,querySet返回["Bob","Miller",612072,612072].正如你所看到的,Django取两个注释值并将它们相乘,这就是我得到612072的原因.

有没有办法在单个querySet中调用多个注释而不获取这些相乘的值.

编辑:还尝试在查询结束时添加distinct()或在每个计数中添加distinct = True,但调用只是进入无限循环.

python django annotate count django-queryset

7
推荐指数
1
解决办法
4313
查看次数

标签 统计

annotate ×1

count ×1

django ×1

django-queryset ×1

python ×1