123456789101112131415161718192021222324252627282930313233343536 |
- ===========================
- PostgreSQL specific lookups
- ===========================
- ``Unaccent``
- ============
- .. fieldlookup:: unaccent
- The ``unaccent`` lookup allows you to perform accent-insensitive lookups using
- a dedicated PostgreSQL extension.
- This lookup is implemented using :class:`~django.db.models.Transform`, so it
- can be chained with other lookup functions. To use it, you need to add
- ``'django.contrib.postgres'`` in your :setting:`INSTALLED_APPS` and activate
- the `unaccent extension on PostgreSQL`_. The
- :class:`~django.contrib.postgres.operations.UnaccentExtension` migration
- operation is available if you want to perform this activation using migrations).
- .. _unaccent extension on PostgreSQL: http://www.postgresql.org/docs/current/interactive/unaccent.html
- The ``unaccent`` lookup can be used on
- :class:`~django.db.models.CharField` and :class:`~django.db.models.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.
|