Django-filter。查找表达式无法正常工作



当我使用MultipleChoiceFilterlookup_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.

DB:PostgreSQL 14

您的请求应该是posts/?lang=ENG&lang=DEU,因为这些值将首先根据过滤器类中的定义进行验证。稍后将使用lookup_expr='iexact'进行数据库查找。如果您想使用小写的值,您必须将您的选择更改为choices=[('eng', 'ENG'), ('deu', 'DEU')]