PostgreSQL specific lookups

Unaccent

unaccent查找允许您使用专用的PostgreSQL扩展执行重音不敏感的查找。

此查找使用Transform实现,因此可以使用其他查找函数链接。要使用它,您需要在INSTALLED_APPS中添加'django.contrib.postgres'并激活PostgreSQL上的不再扩展。如果要使用迁移执行此激活,则可以使用UnaccentExtension迁移操作。

可以在CharFieldTextField上使用unaccent查找:

>>> City.objects.filter(name__unaccent="México")
['<City: Mexico>']

>>> User.objects.filter(first_name__unaccent__startswith="Jerem")
['<User: Jeremy>', '<User: Jérémy>', '<User: Jérémie>', '<User: Jeremie>']

警告

unaccent查找在大多数使用情况下应该执行得很好。但是,使用此过滤器的查询通常会执行全表扫描,这在大表上可能很慢。在这些情况下,使用专用的全文索引工具可能是合适的。