問題是,如果允許數據庫排序結果,它會根據C語言環境對字符串進行排序,這會在我的語言中產生非常錯誤的結果。例如,它認爲所有帶有變音符號的字母都是ASCII格式的字母 - 例如,ś
在z
之後,而它應該在s
和t
之間。我可以強制Django在Python中而不是在數據庫中對管理結果進行排序嗎?
但是,只要允許我使用Python排序結果,我就可以輕鬆地告訴Python如何根據當前語言環境進行排序。 setlocale(LC_ALL, 'pl_PL.UTF-8')
,然後將排序的關鍵字設置爲應用於模型的字符串表示的strxfrm
的結果。
那麼,如何強制Django在Python中對Admin進行排序而不是在數據庫中繞過上述問題?
您是否研究過在數據庫中設置排序規則?如果沒有特定的原因你不能或不想這樣做,那麼這將更普遍地解決問題。 –
@PeterDeGlopper該數據庫目前是SQLite,據我所知,它不支持在一般情況下設置排序規則,但僅限於每個查詢。我可能在這裏錯了,是嗎? – gaazkam
我不是SQLite的專家,但從文檔看來,它並不像它提供的任何排序規則,在這裏很有用。所以,看起來像用Python做它是最好的選擇,只要你在SQLite上。 'get_queryset'答案似乎是一個很好的方法,而不是我尋找替代品。 –