Skip to main content
 首页 » 编程设计

python之如何使用过滤器从列表中构建查询

2025年05月04日20wayfarer

假设在某些数据库中我有人具有此属性:

  • 姓名
  • 年龄

如果我想得到所有名为Stuart 或 Steve 的人,我可以使用 Q 对象:

qs = People.objects.filter(Q(name='Stuart') | Q(name='Steve')) 

但是,如果我收到一个包含n 个名字的列表怎么办?例子: ['Bob、'John'、'Rachel'、'其他一些我不知道的名字'...]

我如何使用列表中的 n 个未知名称构建查询?

请您参考如下方法:

简单的解决方案是使用标准过滤器 __in=

name_list = ['Bob', 'John', 'Rachel'] 
qs = People.objects.filter(name<b>__in</b>=name_list)