我目前正在尝试在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,但调用只是进入无限循环.