Запросы в 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%';
приводит к поиску без учета регистра. Есть идеи, почему запрос в моем коде чувствителен к регистру и как сделать его нечувствительным к регистру?