Django annotate count выдает неправильный результат

Предположим

class Comment(models.Model):
    ...
    likes = models.ManyToManyField(User,...)
class Post
    ...
    content = models.CharField(...)
    likes = models.ManyToManyFiled(User,...)
    comment = models.ManyToManyField(Comment,...)

Теперь, если я запущу

Statement1

Post.objects.annotate(likecount=Count('likes')).values('content','likecount')

Выход:

<QuerySet [{'content': 'delta', 'likecount': 3}, {'content': 'gamma', 'likecount': 6}, {'content': 'beta', 'likecount': 7}, {'content': 'alpha', 'likecount': 3}]>

Statement2

Post.objects.annotate(commentlikecount=Count('comment__likes')).values('content','commentlikecount')

Выход:

<QuerySet [{'content': 'delta', 'commentlikecount': 6}, {'content': 'gamma', 'commentlikecount': 0}, {'content': 'beta', 'commentlikecount': 3}, {'content': 'alpha', 'commentlikecount': 0}]>

Statement3

Post.objects.annotate(likecount=Count('likes'),commentlikecount=Count('comment__likes')).values('content','likecount','commentlikecount')

Выход:

<QuerySet [{'content': 'delta', 'likecount': 18, 'commentlikecount': 18}, {'content': 'gamma', 'likecount': 6, 'commentlikecount': 0}, {'content': 'beta', 'likecount': 21, 'commentlikecount': 21}, {'content': 'alpha', 'likecount': 3, 'commentlikecount': 0}]>

Почему вывод третьего оператора такой, а не

?
<QuerySet [{'content': 'delta', 'likecount': 3, 'commentlikecount': 6}, {'content': 'gamma', 'likecount': 6, 'commentlikecount': 0}, {'content': 'beta', 'likecount': 7, 'commentlikecount': 3}, {'content': 'alpha', 'likecount': 3, 'commentlikecount': 0}]>

Как я могу получить это в качестве вывода?

Вернуться на верх