Django 过滤器。查找表达式无法正常工作

Django-filter. Lookup expression doesn't work properly

当我将 MultipleChoiceFilterlookup_expr='iexact' 一起使用时,看起来参数仍然区分大小写并返回 Select a valid choice。我做错了什么?

这是我的过滤器class:

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,因为这些值将首先根据过滤器 class 中的定义进行验证。 lookup_expr='iexact' 稍后将用于数据库查找。如果您想使用小写值,则必须将您的选择更改为 choices=[('eng', 'ENG'), ('deu', 'DEU')].