QUERYSET: 我如何在列表中按字段过滤(不区分大小写)?

问题描述 投票:0回答:1

我想使用__in来过滤字段,但我也希望当我把它传递给查询时,它不区分大小写。

这是我试过的东西。

fields = ['Banana','Water Melon','grapes']

MyModel.objects.filter(field__in__icontains=fields).values()

然后返回了一个错误(当然):"Unsupported lookup 'in' for CharField or join on the field not permitted, perhaps you meant in?

Unsupported lookup 'in' for CharField or join on the field not permitted, perhaps you meant in?

我希望它是这样的东西。任何帮助enlightenment将被感激。

先谢谢你的帮助

python django list django-queryset
1个回答
0
投票

我不认为Django ORM支持这样的功能,但是使用UNION可以实现。

还没测试过,但可以试试通过做类似这样的事情来暴击大脑。

fruits = ['Banana', 'mango', 'Ginger']
queryset = Fruit.objects.all()
for fruit in fruits:
    queryset = queryset.union(Fruit.objects.filter(name__icontains=fruit)

© www.soinside.com 2019 - 2024. All rights reserved.