当前位置: 首页 > 面试题库 >

如何查询名称在Python列表中包含任何单词的模型?

双恩
2023-03-14
问题内容

实现目标:

我想要名称属性包含列表中任何单词的所有对象。

我有:

list = ['word1','word2','word3']
ob_list = data.objects.filter( // What to write here ?  )
// or any other way to get the objects where any word in list is contained, in 
// the na-me attribute of data.

例如:

if name="this is word2": 然后应返回具有该名称的对象,因为word2在列表中。

请帮忙!


问题答案:

您可以使用Q对象来构造如下查询:

from django.db.models import Q

ob_list = data.objects.filter(reduce(lambda x, y: x | y, [Q(name__contains=word) for word in list]))

编辑:

reduce(lambda x, y: x | y, [Q(name__contains=word) for word in list]))

是一种奇特的写作方式

Q(name__contains=list[0]) | Q(name__contains=list[1]) | ... | Q(name__contains=list[-1])

您还可以使用显式的for循环来构造Q对象。



 类似资料:
  • 问题内容: 查询条件应支持布尔运算符和正则表达式。我已经读过关于Booleano的文章,但是它不支持正则表达式。 如果没有满足此要求的东西,那将是开始构建的最佳技术? 以下示例中的语法只是一个示例,但是它提供的功能应该存在。 等于 适用于以下清单 问题答案: 我设法使用pyparsing模块解决了这个问题。 为了避免发生冲突,我必须用<>替换regexp(),但是目前所有这些似乎都是最好的解决方案

  • 问题内容: 我想知道是否有任何可靠且一致的方法来获取Python包的“导入名称” /名称空间。例如; 包装 ; django-haystack 导入名称 ;草垛 要么 包装 ; ipython 导入名称 ;IPython的 到目前为止,我知道,PyPi不会存储我使用PyPiXmlRpc检查过的信息。 我还尝试自动下载包,解压缩并挖掘.egg-info,但有些包根本没有该文件夹。 任何帮助将不胜感激

  • 我有一个包含50000个单词的单词列表,还有一个逐行查找字母字符的txt文件。我试图通过按顺序阅读单词列表中的单词来找到包含7个不同字母的单词,我为此编写了一个方法。 首先,我浏览单词并同步字符列表,然后通过导航字母txt文件在单词中相互检查,如果有,则增加计数器。通过这种方式,我试图了解单词中有多少不同的字母,最后,如果它提供了控制,我会将其添加到列表中。 读取txt文件并返回哈希集。 但它不是

  • A表字段:id,name B表字段:id,a_id(A表id),status(0.正常,1禁用) A表B表是一对多关系 要求:查出来A表中非正常的名称(name)列表 A表id在B表中禁用或不存在的关联的数据都属于不正常

  • 我有一个列表的数据集,其中包含其他列表,我想找到前1000个单词 我试过这个,但不起作用: 从集合导入计数器counts_top1000=[逐字,Counter(mainlist).MOST_COMMAN(1000)] 请注意,我的数据集是“mainlist”。 如果你有更多的想法,我将不胜感激。

  • 问题内容: 我正在使用ADO从Excel工作簿导入数据。我在一个工作表上遇到麻烦,其中一个列名包含一个点:“ Col.1”。 我尝试了所有发现的东西:双引号,方括号,后卫。什么都行不通。会引发错误,或者在每行上查询输出“ Col.1”。 鉴于我无法重命名源文件中的列, 如何使用其名称而不是其编号([F1])手动选择此列? 问题答案: 我终于找到了如何从此列中检索数据。 您需要 替换“。” 按“#”