idegree
@idegree
Senior Workaround Developer

Проблема с поиском, регистром и кириллицей в Django REST Framework?

Проблема следующая: делаю поиск по названию и категории организации, поиск должен быть не чувствительным к регистру. С латиницей всё ок, а вот кириллица остается регистрочувствительной.
class CompanyViewSet(viewsets.ReadOnlyModelViewSet):
    """
    Return a list of all the companies with optional search.
    """
    queryset = models.Company.objects\
        .filter(parent=None)\
        .annotate(Count('childs'))\
        .order_by('-rating')
    queryset = serializers.CompanySerializer.setup_eager_loading(queryset)
    serializer_class = serializers.CompanySerializer
    filter_backends = (filters.SearchFilter,)
    search_fields = ('name', 'category__name')

Как я понял из документации DRF поиск по умолчанию регистронезависим.
By default, searches will use case-insensitive partial matches.

Скриншоты, описывающие проблему (cafe - Ok, кафе - fail, Кафе - Ok)
2f971285c38b4718ac07e5f281c000a5.pngec236048a41d42d4afd640582c410317.png4129b85e6231434c8b4676d3e784e953.png

Может кто сталкивался и может подсказать красивое решение проблемы?

UPD Уточняю: БД сейчас - SQLite3, есть подозрения, что на какой-нибудь PostgreSQL такой проблемы не будет, однако на своем ноуте все таки хотелось бы разрабатывать с БД по-проще...
  • Вопрос задан
  • 2348 просмотров
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы