Я использую общее представление object_list
, чтобы быстро вывести список статей.К каждой статье прикреплены комментарии.Запрос использует аннотацию для Count()
количества комментариев, а затем order_by()
для этого аннотированного числа.
'queryset': Article.objects.annotate(comment_count=Count('comments')).order_by('-comment_count'),
Комментарии являются частью структуры django.contrib.comments
и прикрепляются к модели через общийОтношения.Я добавил явный обратный поиск к своей модели Article:
class Article(models.Models):
...
comments = generic.GenericRelation(Comment, content_type_field='content_type', object_id_field='object_pk')
Проблема в том, что это считает "неактивные" комментарии;те, которые имеют is_public=False
или is_removed=True
.Как я могу исключить любые неактивные комментарии из подсчета?