如何将多个filter()查询附加到一个变量中

时间:2015-01-03 18:00:14

标签: python django

如果我对模型有三个不同的查询,我如何将它们附加到一个变量

x = AnswerModel.objects.filter(user= 'tim')

y = AnswerModel.objects.filter(user= 'paul')

z = AnswerModel.objects.filter(question= 'i like jam')

x = x.append(y)
x = x.append(z)

2 个答案:

答案 0 :(得分:3)

使用|

x = AnswerModel.objects.filter(user= 'tim')
y = AnswerModel.objects.filter(user= 'paul')
z = AnswerModel.objects.filter(question= 'i like jam')

qs = x | y | z

或者,使用django.db.models.Q

x = AnswerModel.objects.filter(Q(user='tim') | Q(user='paul') | Q(question='i like jam')

两种方法都将返回单个查询集中所有查询集的所有结果。

答案 1 :(得分:1)

您需要chain

from itertools import chain
x = list(chain(x, y, z))