У меня есть окно автозаполнения поиска, которое возвращает курсы, когда пользователи вводят строку запроса. Это нормально работает на моем сервере разработки, но при развертывании в режиме реального времени он возвращает результаты только тогда, когда пользователь вводит одно слово, а не несколько слов, разделенных пробелами. Это проблема, поскольку названия курсов могут содержать пробелы.
По независящим от меня причинам я вынужден использовать mysql.connector.django
в качестве базы данных. У меня ограниченный доступ к конфигурации базы данных.
Это код, который работает в разработке, но не работает, когда запрашиваете ту же базу данных:
courses = (Course.objects.filter(module__open=True, module__term__academic_year__live=True)
.filter(title__icontains=query)
.distinct()
.order_by('category__title', 'title'))
Это настройки базы данных:
DATABASES = {
'default': {
'ENGINE': 'mysql.connector.django',
...
'PORT': '3306',
'OPTIONS': {
'use_pure': True
}
}
}
use_pure
устанавливается из-за этой ошибки .
Мне известно, что запросы MySQL не учитывают регистр по умолчанию, но я бы подумал, что использование icontains
все равно вернет результаты.