Django 过滤器。查找表达式无法正常工作
Django-filter. Lookup expression doesn't work properly
当我将 MultipleChoiceFilter
与 lookup_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')]
.
当我将 MultipleChoiceFilter
与 lookup_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')]
.