汎用ビューを使用してobject_list
一連の記事をすばやく一覧表示しています。各記事にはコメントが添付されています。クエリは、Count()
コメントの数に対する注釈を使用し、次にorder_by()
その注釈付きの番号を使用します。
'queryset': Article.objects.annotate(comment_count=Count('comments')).order_by('-comment_count'),
コメントはdjango.contrib.comments
フレームワークの一部であり、Generic Relationship を介してモデルに添付されます。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
。非アクティブなコメントをカウントから除外するにはどうすればよいですか?