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

时间:2019-04-10 05:13:40

标签: python django orm

比方说,在某些数据库中,我有,具有以下属性:

  • 名称
  • 年龄

如果我想让所有被称为 Stuart Steve 的人,我可以使用Q对象:

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

但是,如果我收到一个 n 个名字列表怎么办?例: ['Bob, 'John','Rachel', 'Some other names that i don't know'...]

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

一种实现此目的的方法是qs = People.objects.filter(name__in=['list of names']),但我不确定,还有另一种有效的方法。