Un archivo de migración debe crearse y aplicarse manualmente.
Primero, crea una migración vacía:
./manage.py makemigrations myapp --empty
Luego abra el archivo y agregue UnaccentExtension
a operations
:
from django.contrib.postgres.operations import UnaccentExtension
class Migration(migrations.Migration):
dependencies = [
(<snip>)
]
operations = [
UnaccentExtension()
]
Ahora aplique la migración usando ./manage.py migrate
.
Si recibe el siguiente error durante el último paso:
django.db.utils.ProgrammingError: permission denied to create extension "unaccent"
HINT: Must be superuser to create this extension.
... luego permita temporalmente los derechos de superusuario a su usuario realizando postgres# ALTER ROLE <user_name> SUPERUSER;
y su NOSUPERUSER
contrapartida. pgAdminIII también puede hacer esto.
Ahora disfruta de la funcionalidad sin acento usando Django:
>>> Person.objects.filter(first_name__unaccent=u"Helène")
[<Person: Michels Hélène>]