クエリセットの結果を一覧表示していますが、結果を表示する順序を選択するオプションを追加したいと考えています。
ソートのためにデータベースから他のページに実際のデータを渡したいと思います。すべてのオブジェクト ID を取得し、django セッションを使用して、順序基準に基づいて新しいクエリセットを再作成することで、このようなことを達成できました。
そのような目標を達成する他の方法があるかどうか考えていましたか?
10倍
クエリセットの結果を一覧表示していますが、結果を表示する順序を選択するオプションを追加したいと考えています。
ソートのためにデータベースから他のページに実際のデータを渡したいと思います。すべてのオブジェクト ID を取得し、django セッションを使用して、順序基準に基づいて新しいクエリセットを再作成することで、このようなことを達成できました。
そのような目標を達成する他の方法があるかどうか考えていましたか?
10倍
現在データをテーブルとして表示していると仮定すると、 tablesorterなどの JavaScript クライアント側テーブル ソーターにチャンスを与えることができます。JavaScript のテーブル ソートがたくさんあります。
私は今、開発マシンから離れていますが、ID のリストを新しいクエリセットに渡してからpk__in=list_of_object_ids
、ネイティブorder_by
関数を使用できると思います。
例えば:
objs = Object.objects.filter(pk__in=list_of_object_ids).order_by('value_to_order_by')
とにかく、それは私が最初に試すことですが、より良い最適化があると確信しています.
たとえば、オブジェクト ID のリストの代わりに、並べ替えたい値を持つキーと値のペアを持つ辞書を渡すことができます。
例えば:
[{'obj_id':1,'obj_value':'foo'},{'obj_id':2,'obj_value':'foo'}]
次に、ここのようにラムダ関数を使用して並べ替えます。