posts_by_score = Comment.objects
.filter(is_public=True)
.values('object_pk')
.annotate(score=Count('id'))
.order_by('-score')
post_ids = [int(obj['object_pk']) for obj in posts_by_score]
top_posts = Post.objects.filter(space=place.id).in_bulk(post_ids)
context['most_commented'] = top_posts
Você terá que substituir o filtro Post com seus próprios critérios de filtragem, mas essa é a maneira mais fácil que encontrei de obter os posts mais comentados com o framework de comentários django.