繁体   English   中英

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

[英]QUERYSET: How can I filter by field in a list (case insensitive)

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

这是我尝试过的事情:

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

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

并返回一个错误(当然)。

不支持在 CharField 中查找或加入不允许的字段,也许您的意思是 in?

我希望它是那样的。 任何帮助/启示将不胜感激,

预先感谢您的帮助

我不认为 Django ORM 支持类似的东西,但黑客可以使用 UNION。

尚未对其进行测试,但尝试通过执行类似以下操作来冲击大脑:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM