Django возвращает результаты с учетом регистра, несмотря на правильную коллизию базы данных и использование icontains

У меня есть следующее представление DRF:

class DictionaryFuzzyView(generics.ListAPIView):
    queryset = Dictionary.objects.filter(disabled=False,).order_by(Length('simplified').asc())
    serializer_class = FuzzySerializer
    filter_backends = (filters.DjangoFilterBackend, OrderingFilter)
    pagination_class = LimitOffsetPagination
    ordering_fields = ['id']
    filter_class = FuzzyFilter

FuzzyFilter выглядит следующим образом:

class FuzzyFilter(filters.FilterSet):
    simplified = filters.CharFilter(field_name='simplified', lookup_expr='contains')
    traditional = filters.CharFilter(field_name='traditional', lookup_expr='contains')
    pinyin_marks = filters.CharFilter(field_name='pinyin_marks', lookup_expr='contains')
    translation = filters.CharFilter(field_name='translation', lookup_expr='icontains')
    frequency = filters.CharFilter(field_name='frequency', lookup_expr='exact')
    hsk = NumberInFilter(field_name='level', lookup_expr='in')

И я делаю вызов следующим образом:

http://127.0.0.1:8000/api/v1/fuzzy/?translation=One

Я получу только результаты, содержащие "One", но никогда результаты, содержащие "один", и наоборот.

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

MySQL Database table

Я на Django 3.x.

Что может быть причиной этого/какой лучший метод решения/поиска неисправности?

У меня конкретное поле, перевод, было установлено в двоичном формате.

Когда я снял этот флажок, все заработало как надо.

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