を持っているすべてのオブジェクト間のフィールドの最大値が、私はこのモデルがあると返す関数に注釈を付けますクラス。 this postで言及されているように、すべてのクラスで最高のmark
の生徒を得ることができます。しかし、私は彼らのクラスで最高mark
を持っているすべての学生、このような何かしたい:Djangoは機能
Student.objects.annotate(
highest_mark_in_class=Max(
Students.objects.filter(class_name=F('class_name'))
.filter(mark=highest_mark_in_class)
)
)
を私はfor
ループでこれを行うことができますが、大規模なデータベースでfor
ループはかなり遅いです。そのようなクエリを1行に書くことが可能かどうかはわかりません。