PostgreSQL specific lookups
Unaccent
The unaccent
lookup allows you to perform accent-insensitive lookups using a dedicated PostgreSQL extension.
This lookup is implemented using Transform
, so it can be chained with other lookup functions. To use it, you need to add 'django.contrib.postgres'
in your INSTALLED_APPS
and activate the unaccent extension on PostgreSQL. The UnaccentExtension
migration operation is available if you want to perform this activation using migrations).
The unaccent
lookup can be used on CharField
and TextField
:
>>> 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>']
Warning
unaccent
lookups should perform fine in most use cases. However, queries using this filter will generally perform full table scans, which can be slow on large tables. In those cases, using dedicated full text indexing tools might be appropriate.
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/1.9/ref/contrib/postgres/lookups/