html 遍历元组queryset,将查询集附加到列表/元组而不进行评估

本文讨论了在Python的Django框架中,如何处理QuerySet对象。通过示例展示了QuerySet的不变性和在列表和元组中的类型转换。重点介绍了append()方法和使用加号操作符将QuerySet添加到列表或元组中的行为,以及在遍历QuerySet时其延迟评估的特性。
摘要由CSDN通过智能技术生成

这可能不再正确,或者您检查元素类型的方式无意中触发了评估。

总结一下,您可以使用append()或my_tuple = my_tuple + (foo,)。如果您尝试仅打印这些内容,它将评估QuerySet并输出其内容,但如果您遍历这些集合,则可以使用实际的QuerySet。

>>> a = Author.objects.filter()

>>> b = Book.objects.filter()

>>> type(a), type(b)

(, )

>>> l = []

>>> l.append(a)

>>> l.append(b)

>>> type(l[0]), type(l[1])

(, )

>>> for q in l:

... print type(q)

...

>>> my_tuple = ()

>>> my_tuple = my_tuple + (a,)

>>> type(my_tuple[0])

>>> len(l)

2

>>> len(my_tuple)

1

>>> print l

[[, '...(remaining elements truncated)...'], [,]]

>>> len(my_tuple)

1

>>> print my_tuple

([, '...(remaining elements truncated)...'],)

>>> len(my_tuple)

1

>>>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值