Um arquivo de migração precisa ser feito e aplicado manualmente.
Primeiro, crie uma migração vazia:
./manage.py makemigrations myapp --empty
Em seguida, abra o arquivo e adicione
UnaccentExtension
para operations
:from django.contrib.postgres.operations import UnaccentExtension
class Migration(migrations.Migration):
dependencies = [
(<snip>)
]
operations = [
UnaccentExtension()
]
Agora aplique a migração usando
./manage.py migrate
. Se você receber o seguinte erro durante essa última etapa:
django.db.utils.ProgrammingError: permission denied to create extension "unaccent"
HINT: Must be superuser to create this extension.
... em seguida, permita temporariamente os direitos de superusuário ao seu usuário executando
postgres# ALTER ROLE <user_name> SUPERUSER;
e seu NOSUPERUSER
contrapartida. O pgAdminIII também pode fazer isso. Agora aproveite a funcionalidade unaccent usando o Django:
>>> Person.objects.filter(first_name__unaccent=u"Helène")
[<Person: Michels Hélène>]