したがって、テンプレートビュー用にいくつかのモデルオブジェクトを取得したいのですが、選択したすべての要素の計算ホットネスまたは計算ランキングを事前に呼び出す必要があります。
models = Model.objects.a_bunch_of_filtering_sorting()
それで、これを行うための速い方法は何ですか?
たぶんリストを繰り返しますか?
for model in models: # Surely it can't be this
model.the_method()
カスタムSQLを実行しようとしましたが、メソッド呼び出しが許可されないか、リストの並べ替えが早すぎます
sortValue = ORDER BY ....
cursor = connection.cursor()
cursor.execute("""
SELECT d.field1, d.field2 ........
# unfortunately method calls aren't allowed in here
FROM Model_model d
GROUP BY 1
%s""" % sortValue)
for row in cursor.fetchall():
d = self.model(id=row[0] .... )
d.the_method() # wont work, the list is already
# ordered so we are calculating a sorting key one step behind
では、すべてのdjangoモデルでメソッドを呼び出すために実行できる手順は何ですか(最も好ましい方法)。その後、それらを並べ替えてテンプレートにリリースします。
ありがとう