独自のテンプレート メソッドを作成せずに、テンプレートでモデルのメソッドを呼び出すことはできません。したがって、たとえば、コメントの賛成票の数を表示するには:
comment.rating_set.filter(vote=1).count()
各コメントは、テンプレートに送信される前に、次のように rating_set メンバーが追加されています。
comment.rating_set = comment.rating_set.filter(vote=1).count()
簡単ですが、コメントを取得するにはいくつかの方法があります (つまり、状況に応じて、コメントを取得するために使用されるいくつかの方法があります)。テンプレートは常に使用されます。
各メソッドについて、次の代わりに変更することができます。
return commentList
それは読む
return addInVotes(commentList)
whereaddInVotes
は、リスト内の各コメントをループし、上記のコードを実行して rating_count 値を追加する単純な関数です。
ここでの質問はこれです-これをすべてのメソッドに追加する代わりに、コードをmodel.getおよびmodel.filterに「添付」することは可能ですか? コメントのモデルを拡張して、新しく定義されたフィルターを取得できることは承知していますが、他に方法はありますか? dJango がどこかに隠していたであろうもののように思えます。