Запросы в Django чувствительны к регистру после перехода на MariaDB

У меня есть проект Django, который может выполнять запрос по имени человека, как показано в приложенном коде.

def get_queryset(self):
    query = self.request.GET.get('query')

    if query:
        query = " ".join(query.split())

        if query.isdigit():
            qs = Patient.objects.filter(Q(full_name__contains=query) | Q(patient_id__contains=query)).order_by('patient_id')
        else:
            qs = Patient.objects.filter(Q(full_name__contains=query) | Q(patient_id__contains=query)).order_by(Lower('full_name'))
    else:
        qs = Patient.objects.order_by(Lower('full_name'))

    return qs

Это работает в SQLite3 без учета регистра, что мне и нужно.

Недавно я перенес проект на MariaDB, и теперь запрос чувствителен к регистру. Я проверил collation в базе данных, таблице, столбце, ... и он установлен на utf8mb3_general_ci, что, как я понимаю, должно привести к поиску без учета регистра.

Интересно, что при выполнении интерактивного запроса:

select full_name from patients_patient where full_name like 'ana maria%';

приводит к поиску без учета регистра. Есть идеи, почему запрос в моем коде чувствителен к регистру и как сделать его нечувствительным к регистру?

Вернуться на верх