如何检查字符串是否包含Django ORM中查询中列表的任何一个值

时间:2016-01-21 06:43:53

标签: python mysql django django-orm

我需要创建一个查询,我想在其中检查字段“Answer_String”是否包含列表中的任何一个值。

我是这样做的:

q=queryset.filter(reduce(operator.and_, (Q(answer_string__contains = item) for item in answerList)))

有一个没有。用户可以从中选择多个答案的复选框,并且我已经创建了列表。在answer_string字段中的任何值都可以包含字符串中的多个答案。但我想检查字符串是否包含列表中的任何一个值,它应该将其视为是。

我写的这个查询返回零结果。有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

如果要检查字段是否包含列表的“任何”值,请使用operator.or_

operator.and_通过and连接较小的Q对象。因此,您当前的查询正在搜索包含所有列表值的字段值。

答案 1 :(得分:1)

我认为这应该有用

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName("com.android.phone","com.android.phone.NetworkSetting");
startActivity(intent);

另外,我不认为你应该使用operator.and_而不是operator.or _

检查此链接 Filter Django database for field containing any value in an array