ThreadedComment і TOP10 найкоментованіших об'єктів

Чомусь розробники не написали такої корисної API. Моє рішення, мабуть тимчасове, бо треба буде потестувати на швидкість.

post_type = ContentType.objects.get_for_model(Post)
counts = ThreadedComment.objects.filter(content_type=post_type).values('object_id').annotate(Count('object_id')).order_by()[:10]
counts = [ ( Post.objects.get(pk=cc['object_id']), cc['object_id__count']) for cc in counts ]

а як прикольно це виглядає у одній стрічці :))

counts = [ ( Post.objects.get(pk=cc['object_id']), cc['object_id__count']) for cc in ThreadedComment.objects.filter(content_type=ContentType.objects.get_for_model(Post)).values('object_id').annotate(Count('object_id')).order_by()[:10] ]


Немає коментарів: