Методом подбора и внимательного исследования стаковерфлоу, получилось что-то вроде такого:
- Нужно в миграцию добавить
django.contrib.postgres.operations.TrigramExtension()
- Нужно для каждого поля создать индекс (на примере name)
django.contrib.postgres.indexes.GinIndex(django.contrib.postgres.indexes.GinIndex(django.contrib.postgres.indexes.OpClass(Upper('name'), name='gin_trgm_ops')))
Это капец как неочевидно, но для поиска по
icontains работает именно так. Сорян, что потревожил сообщество.