Een migratiebestand moet handmatig worden gemaakt en toegepast.
Maak eerst een lege migratie:
./manage.py makemigrations myapp --empty
Open vervolgens het bestand en voeg UnaccentExtension
toe naar operations
:
from django.contrib.postgres.operations import UnaccentExtension
class Migration(migrations.Migration):
dependencies = [
(<snip>)
]
operations = [
UnaccentExtension()
]
Pas nu de migratie toe met ./manage.py migrate
.
Als u de volgende foutmelding krijgt tijdens die laatste stap:
django.db.utils.ProgrammingError: permission denied to create extension "unaccent"
HINT: Must be superuser to create this extension.
... geef vervolgens tijdelijk superuser-rechten aan uw gebruiker door postgres# ALTER ROLE <user_name> SUPERUSER;
uit te voeren en zijn NOSUPERUSER
tegenhanger. pgAdminIII kan dit ook.
Geniet nu van de ongeaccentueerde functionaliteit met Django:
>>> Person.objects.filter(first_name__unaccent=u"Helène")
[<Person: Michels Hélène>]