我在阅读this article动态生成Q对象。我的理解(大部分)问对象,但我不明白作者是如何具体是这样做的例子:了解Django Q - 动态
# string representation of our queries
>>> predicates = [('question__contains', 'dinner'), ('question__contains', 'meal')]
# create the list of Q objects and run the queries as above..
>>> q_list = [Q(x) for x in predicates]
>>> Poll.objects.filter(reduce(operator.or_, q_list))
[<Poll: what shall I make for dinner>, <Poll: what is your favourite meal?>]
我特别不明白的是列表理解。 A Q
对象使用任意关键字参数进行格式化,如Q(question__contains='dinner')
。
如果像作者建议的那样使用列表理解,那么不会在每次迭代中将一个元组放入一个Q
对象中吗?像这样:Q(('question__contains', 'dinner'))
。
我不确定此代码如何生成格式正确的Q
对象。
绝对真棒。非常感谢您的介绍。 – qarthandso