是否有可能获得Author.objects.filter(surname__istartswith='Z')
返回结果,也以'Ž','Ź'等开头?
我想到的唯一解决方案是使用unicode音译展平surname
并将其保存为db中的surname_flat
。然后Author.objects.filter(surname_flat__istartswith='Z')
会起作用,但它需要数据库迁移。
我正在使用postgres。
答案 0 :(得分:1)
编写django-unaccent库是为了提供您需要的功能。
通过执行此操作,您将使解决方案依赖于数据库,如果您决定将来移动数据库引擎,这可能是一个问题。
您添加额外计算列的解决方案是我将使用的解决方案,因为这会使您的代码与数据库无关。您还可以更有效地索引列。因为django-unaccent库使用基于数据库函数的搜索,所以每次使用它时都会对数据进行列扫描。