如何使用过滤器从列表构建查询?

2024-09-29 00:18:24 发布

您现在位置:Python中文网/ 问答频道 /正文

假设在某个数据库中,我有人具有以下属性:

  • 姓名
  • 年龄

如果我想让所有的人都叫斯图尔特或者史蒂夫,我可以用Q对象:

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

但是,如果我收到一张名单,上面有n个名字呢?例子: ['Bob, 'John','Rachel', 'Some other names that i don't know'...]

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


Tags: 对象name数据库属性objectsfilter名字people
2条回答

一种方法是qs = People.objects.filter(name__in=['list of names']),可能还有另一种有效的方法,我不太确定。你知道吗

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

name_list = ['Bob', 'John', 'Rachel']
qs = People.objects.filter(name__in=name_list)

相关问题 更多 >