Django-filter. Выражение поиска не работает должным образом

Когда я использую MultipleChoiceFilter с lookup_expr='iexact', похоже, что параметры по-прежнему чувствительны к регистру и возвращается Select a valid choice. Что я делаю неправильно?

Это мой класс фильтра:

class PostFilter(filters.FilterSet):
    lang = filters.MultipleChoiceFilter(
        field_name='language', choices=[('ENG', 'ENG'), ('DEU', 'DEU')], lookup_expr='iexact')

    class Meta:
        fields = ('lang',)
        model = Post

Запрос: posts/?lang=eng&lang=deu

Ответ: Select a valid choice. eng is not one of the available choices.

Моя БД: PostgreSQL 14

Ваш запрос должен быть posts/?lang=ENG&lang=DEU, так как сначала значения будут проверяться на соответствие определению в классе фильтра. lookup_expr='iexact' будет использоваться позже для поиска в базе данных. Если вы хотите использовать значения в нижнем регистре, вам придется изменить свой выбор на choices=[('eng', 'ENG'), ('deu', 'DEU')].

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