5
私はobject_list
一般的なビューを使用して、一連の記事をすばやく一覧表示しています。各条項にはコメントが添付されています。このクエリでは、コメントの数をCount()
に、次に注釈した数値をorder_by()
にします。注釈付きのDjangoクエリから非アクティブなコメントをフィルタ/除外する方法はありますか?
'queryset': Article.objects.annotate(comment_count=Count('comments')).order_by('-comment_count'),
コメントはdjango.contrib.comments
フレームワークの一部であり、一般的な関係を介してモデルに取り付けられています。記事モデルに明示的な逆引き参照を追加しました:
class Article(models.Models):
...
comments = generic.GenericRelation(Comment, content_type_field='content_type', object_id_field='object_pk')
問題は、これは「非アクティブ」のコメントです。 is_public=False
またはis_removed=True
のもの。非アクティブなコメントを数えないようにするにはどうすればよいですか?
は、彼らが削除/パブリックコメントを持っているか否かに基づいて、そのフィルタの記事ではないだろう:あなたは後
annotate
句にそれを置くことを確認すること、filter
句を使用する必要がありますか? – Jiaaroこれはうまくいったようですが、私はジムが何が起こっていないかを確認するために調査するつもりです。 – Soviut
私が気づいた副作用の1つは、コメントがある記事のみが返され、コメントのない記事は除外されるということです。 – Soviut