Python 使用聚合查找记录计数的差异

Python 使用聚合查找记录计数的差异,python,django,Python,Django,我的任务是使用聚合/注释将此代码写入一个查询中 我试着用计数之类的东西,但我不知道这是怎么回事 upvotes = UserVote.objects.filter(blog=self, vote_type='U').count() downvotes = UserVote.objects.filter(blog=self, vote_type='D').count() return upvotes - downvotes 不管怎样,我是这样做的: return Blog.objects.agg

我的任务是使用聚合/注释将此代码写入一个查询中

我试着用计数之类的东西,但我不知道这是怎么回事

upvotes = UserVote.objects.filter(blog=self, vote_type='U').count()
downvotes = UserVote.objects.filter(blog=self, vote_type='D').count()
return upvotes - downvotes

不管怎样,我是这样做的:


return Blog.objects.aggregate(总投票数=(Count('post\U voces',filter=Q(post\U voces,filter=U)和Q(post\U voces,Blog=self))-Count('post\U voces',filter=Q(post\U voces,filter=Q)(post\U voces,Blog=self))

你看过这本书了吗?它包含了许多例子,其中确切地包含了您要做的事情。特别是最后一个备忘单的例子应该会让你走上正轨。@dirkgroten我刚刚又看到了,但对我来说有点复杂。你能详细说明并使用我上面提到的例子吗?
Publisher
是你的
Blog
Book
是你的
UserVote
@dirkgroten我已经做了几个小时了,但我找不到一个有效的命令。你能帮帮我吗?不管怎样,我是这样做的:
return Blog.objects.aggregate(总投票数=(Count('post\U voces',filter=Q(post\U voces\U voces\U type='U')&Q(post\U voces\U Blog=self))-Count('post\U voces',filter=Q(post\U voces\U voces\U Blog=self))
如果有人适当的帮助,效果会更好。