私のデータベースには次のようなテーブル(モデル)があります:
名前|平均|評価
マルコ| 9.6 | 1
マルコ| 9.3 | 2
ケビン| 8.8 | 1
ケビン| 9.4 | 2
したがって、次のようにテンプレートにテーブルを表示するには、このデータを取得する必要があります。
名前| eval1 | eval2
マルコ| 9.6 | 9.3
ケビン| 8.8 | 9.4
ビューでクエリを実行するにはどうすればよいですか?
私のデータベースには次のようなテーブル(モデル)があります:
名前|平均|評価
マルコ| 9.6 | 1
マルコ| 9.3 | 2
ケビン| 8.8 | 1
ケビン| 9.4 | 2
したがって、次のようにテンプレートにテーブルを表示するには、このデータを取得する必要があります。
名前| eval1 | eval2
マルコ| 9.6 | 9.3
ケビン| 8.8 | 9.4
ビューでクエリを実行するにはどうすればよいですか?
ORM だけを使用してこれを行う簡単な方法はありません。使ってみてくださいitertools.groupby
:
from itertools import groupby
results = ModelCls.objects.order_by("name")
grouped = groupby(results, lambda r: r.name)
モデルが名前別にグループ化されました。
for name, objects in grouped:
# process model objects in each group
for obj in objects:
# do something with each object
groupby オブジェクトをテンプレートに渡すと問題なく動作するはずですが、これはジェネレーターであり、反復処理を行うと使い果たされることに注意してください。