如何将多个 filter() 查询附加到一个变量中
How to append multiple filter() queries into one variable
如果我对一个模型有三个不同的查询,我该如何将它们附加到一个变量中
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)
你需要chain
.
from itertools import chain
x = list(chain(x, y, z))
使用|
:
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')
这两种方法都会 return 来自单个查询集中所有查询集的所有结果。
如果我对一个模型有三个不同的查询,我该如何将它们附加到一个变量中
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)
你需要chain
.
from itertools import chain
x = list(chain(x, y, z))
使用|
:
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')
这两种方法都会 return 来自单个查询集中所有查询集的所有结果。