Djangoのソートが50音順にならない時の対処法をQiitaに書きました

はじめに

Djangoで作ったWebサービス「世界遺産トラベラーズ」では、世界遺産や世界遺産の存在する国を50音順に表示している画面があります。

f:id:shonansurvivors:20181207001429p:plainf:id:shonansurvivors:20181207001918p:plain

世界遺産や国の情報はデータベースに持っていて、データベースからデータを引っ張ってくる時にその名称で昇順ソート、つまり、あいうえお順に並び替えています。

発生した問題

開発途中は期待通りに50音順に表示されていたのですが、Herokuにデプロイして本番環境で見てみると50音順とは全く異なる順序で表示されてしまうという問題が発生してしまいました...。

原因と対処方法

この50音順にならないという点はサービスの機能に与える影響としては致命的ではなかったのですが、見た目としてかっこ悪いのでなんとかしたいと思い、原因と対処方法を調べたところ解決できたので、その内容をQiitaにまとめました。

原因はQiitaの方にも書いていますが、HerokuでのデータベースとしてPostgreSQLを使用した場合に、このPostgreSQLの初期設定が影響したためでした。

Djangoのチュートリアルを終えた方に

Django Girls Tutorialやその他Qiita等での各種Djangoチュートリアルでは、多くの場合HerokuでのデータベースとしてPostgreSQLを使用しているかと思います。

そのため、チュートリアルを終えた後、データベースに(Modelに)日本語文字列カラムを持つようなWebアプリを作った方は同様の事象に遭遇しているケースが結構多いのでは、と思っています。

以下の記事を参考に解決いただければ幸いです!