Jinja2 で並べ替えフィルターを連続して適用して、最初に 1 つの属性でリストを並べ替え、次に別の属性で並べ替えることができますか? これは当然のことのように思えますが、私のテストでは、先行する並べ替えは完全に不安定で、すべての並べ替えが失われます。
リストをテンプレートに渡す前にPythonで最初にソートすることですでに回避しましたが、Jinja2で「安定」にソートできるかどうか知りたいです。
フィルターを適用する方法は次のようでした。
{{ item_list|sort(attribute='value')|sort(attribute='color') }}
私が見たいと思っていたのはcolor
、色を共有する要素が でソートされた、 でソートされたリストでしたvalue
。value
代わりに、並べ替えがまったく起こらなかったかのように見えました。
たとえば、次のリストから:
2 red
3 blue
3 red
2 blue
1 blue
4 red
私はこのようなものが欲しいです:
1 blue
2 blue
3 blue
2 red
3 red
4 red
groupbyフィルターを調べましたが、その実装は複雑すぎるようです (ネストされた for ループが必要になります)。