Файлът за миграция трябва да бъде направен ръчно и приложен.
Първо създайте празна миграция:
./manage.py makemigrations myapp --empty
След това отворете файла и добавете UnaccentExtension
към operations
:
from django.contrib.postgres.operations import UnaccentExtension
class Migration(migrations.Migration):
dependencies = [
(<snip>)
]
operations = [
UnaccentExtension()
]
Сега приложете миграцията с помощта на ./manage.py migrate
.
Ако получите следната грешка по време на последната стъпка:
django.db.utils.ProgrammingError: permission denied to create extension "unaccent"
HINT: Must be superuser to create this extension.
... след това временно разрешете суперпотребителски права на вашия потребител, като изпълните postgres# ALTER ROLE <user_name> SUPERUSER;
и неговия NOSUPERUSER
двойник. pgAdminIII също може да направи това.
Сега се насладете на функционалността без ударение с помощта на Django:
>>> Person.objects.filter(first_name__unaccent=u"Helène")
[<Person: Michels Hélène>]