Migrační soubor je třeba vytvořit a použít ručně.
Nejprve vytvořte prázdnou migraci:
./manage.py makemigrations myapp --empty
Poté soubor otevřete a přidejte UnaccentExtension
na operations
:
from django.contrib.postgres.operations import UnaccentExtension
class Migration(migrations.Migration):
dependencies = [
(<snip>)
]
operations = [
UnaccentExtension()
]
Nyní použijte migraci pomocí ./manage.py migrate
.
Pokud se během posledního kroku zobrazí následující chyba:
django.db.utils.ProgrammingError: permission denied to create extension "unaccent"
HINT: Must be superuser to create this extension.
... pak dočasně povolte práva superuživatele svému uživateli provedením postgres# ALTER ROLE <user_name> SUPERUSER;
a jeho NOSUPERUSER
protějšek. pgAdminIII to také umí.
Nyní si vychutnejte funkci bez přízvuku pomocí Django:
>>> Person.objects.filter(first_name__unaccent=u"Helène")
[<Person: Michels Hélène>]