Tệp di chuyển cần được tạo và áp dụng theo cách thủ công.
Đầu tiên, hãy tạo một di chuyển trống:
./manage.py makemigrations myapp --empty
Sau đó, mở tệp và thêm UnaccentExtension
đến operations
:
from django.contrib.postgres.operations import UnaccentExtension
class Migration(migrations.Migration):
dependencies = [
(<snip>)
]
operations = [
UnaccentExtension()
]
Bây giờ, hãy áp dụng việc di chuyển bằng cách sử dụng ./manage.py migrate
.
Nếu bạn gặp lỗi sau trong bước cuối cùng đó:
django.db.utils.ProgrammingError: permission denied to create extension "unaccent"
HINT: Must be superuser to create this extension.
... sau đó tạm thời cấp quyền siêu người dùng cho người dùng của bạn bằng cách thực hiện postgres# ALTER ROLE <user_name> SUPERUSER;
và NOSUPERUSER
của nó đối tác. pgAdminIII tôi cũng có thể làm được điều này.
Bây giờ, hãy tận hưởng chức năng đơn giản bằng Django:
>>> Person.objects.filter(first_name__unaccent=u"Helène")
[<Person: Michels Hélène>]