-1

2 つのフィールドの合計でクエリセットを並べ替えたい。
基本的に、モデルのデフォルトの並べ替え順序を次のように変更したい:(これは機能しません)

class Meta:
   ordering = ('-my_property_but_not_field', 'my_another_field')

my_property_but_not_fieldモデルの 2 つのフィールドを合計します。

以下を使用するソリューションを見てきました。

extra: Django order_by sum of fields
annotate :集計フィールド値で QuerySet を
manager並べ替えます: Django でのカスタム順序付け

extraと を使用するとannotate、新しい並べ替え順序が必要なすべてのコードを変更する必要があります。

ではmanager、そのような問題はありません。
しかし、order_by_1、order_by_2 をエミュレートする方法がわかりません。

4

1 に答える 1

0

それがあなたのユースケースに合っている場合は、合計を新しいフィールドとして追加し、モデルで更新してsave()、プロパティを削除します。

于 2013-06-12T08:50:42.173 に答える