2

Author.objects.filter(surname__istartswith='Z')'Ž'、'Ź'などで始まる結果を返すことは可能ですか?

私の頭に浮かぶ唯一の解決策はsurname、Unicodeの音訳でフラット化しsurname_flat、dbのように保存することです。その後Author.objects.filter(surname_flat__istartswith='Z')は機能しますが、データベースの移行が必要です。

私はpostgresを使用しています。

4

1 に答える 1

1

django-unaccentライブラリは、必要な機能を提供するように作成されています。

ただし、これを行うことで、ソリューションをデータベースに依存させることになります。これは、将来データベースエンジンを移動する場合に問題になる可能性があります。

計算列を追加するソリューションは、コードをdbに依存しないようにするため、私が使用するソリューションです。列にさらに効果的にインデックスを付けることもできます。django-unaccentライブラリはデータベース関数ベースの検索を使用するため、使用するたびにデータの列スキャンを実行します。

于 2012-11-26T12:02:05.453 に答える