データベースが結果を並べ替えることが許可されている場合、私の言語で間違った結果が得られるCロケールに従って文字列がソートされるという問題があります。たとえば、発音区別記号付きのすべての文字はすべてASCII文字の後にあるとみなされます。たとえば、ś
はz
の後になりますが、s
とt
の間に来るはずです。Djangoに管理結果をデータベースではなくPythonでソートさせることができますか?
しかし、私がPythonで結果をソートできるのであれば、現在のロケールに従ってソートする方法をPythonに簡単に伝えることができます。 setlocale(LC_ALL, 'pl_PL.UTF-8')
を入力し、並べ替えのキーをstrxfrm
という結果にするようにモデルの文字列表現に設定します。
Djangoに上記の問題を回避するために、データベースではなく、Pythonで管理者の結果を並べ替えるにはどうすればよいですか?
データベースの照合順序を調べましたか?特定の理由がない場合は、問題をより一般的に解決します。そうしたくない場合やそうしたくない場合。 –
@PeterDeGlopper DBは現在のところ、私が知っている限り、ジェネリックの照合設定をサポートしていないが、クエリごとにのみSQLiteである。私はここで間違っているかもしれない、そうですか? – gaazkam
私はSQLiteの専門家ではありませんが、ドキュメントからは、ここで役に立つコレーションを提供するようには見えません。だから、Pythonでやっているように見えるのは、あなたがSQLiteを使っている限り、最良の選択肢です。 'get_queryset'の答えは、それを行う良い方法のように思えますが、私は選択肢を探しました。 –