30-django queryset 合并
原文:https://blog.csdn.net/smartwu_sir/article/details/80068696
1. 通过自带的方法:
a1 = User.objects.filter(id__gt=8)
a2 = User.objects.filter(id__lt=4)
a3 = a1 | a2
- 1
- 2
- 3
- 4
注:这种方式合并的结构还是一个queryset,相当于a3把a1和a2的条件合并了,推荐,因为可以用order_by等函数了
只能合并同种model对象的数据
2. 用python的chain合并
from itertools import chain
a1 = User.objects.filter(id__gt=8)
a2 = User.objects.filter(id__lt=4)
a3 = chain(a1, a2)
- 1
- 2
- 3
- 4
- 5
- 6
这时候a3是个可迭代对象,把a1和a2分别求出来之后合并成了一个可迭代对象,
他可以作用于其他可迭代对象中他可以把不同model的对象合并,类似于与list相加
做有积累的事~~