Author.objects.filter(surname__istartswith='Z')
'Ž'、'Ź'などで始まる結果を返すことは可能ですか?
私の頭に浮かぶ唯一の解決策はsurname
、Unicodeの音訳でフラット化しsurname_flat
、dbのように保存することです。その後Author.objects.filter(surname_flat__istartswith='Z')
は機能しますが、データベースの移行が必要です。
私はpostgresを使用しています。
django-unaccentライブラリは、必要な機能を提供するように作成されています。
ただし、これを行うことで、ソリューションをデータベースに依存させることになります。これは、将来データベースエンジンを移動する場合に問題になる可能性があります。
計算列を追加するソリューションは、コードをdbに依存しないようにするため、私が使用するソリューションです。列にさらに効果的にインデックスを付けることもできます。django-unaccentライブラリはデータベース関数ベースの検索を使用するため、使用するたびにデータの列スキャンを実行します。