Django以unicode开头

时间:2012-11-26 11:48:26

标签: database django unicode

是否有可能获得Author.objects.filter(surname__istartswith='Z')返回结果,也以'Ž','Ź'等开头?

我想到的唯一解决方案是使用unicode音译展平surname并将其保存为db中的surname_flat。然后Author.objects.filter(surname_flat__istartswith='Z')会起作用,但它需要数据库迁移。

我正在使用postgres。

1 个答案:

答案 0 :(得分:1)

编写django-unaccent库是为了提供您需要的功能。

通过执行此操作,您将使解决方案依赖于数据库,如果您决定将来移动数据库引擎,这可能是一个问题。

您添加额外计算列的解决方案是我将使用的解决方案,因为这会使您的代码与数据库无关。您还可以更有效地索引列。因为django-unaccent库使用基于数据库函数的搜索,所以每次使用它时都会对数据进行列扫描。