django queryset 合并

2020-11-05 10:19:23 浏览数 (1)

1. 通过自带的方法:

代码语言:javascript复制
a1 = User.objects.filter(id__gt=8)
a2 = User.objects.filter(id__lt=4)

a3 = a1 | a2
注:这种方式合并的结构还是一个queryset,相当于a3把a1和a2的条件合并了,推荐,因为可以用order_by等函数了
只能合并同种model对象的数据

2. 用python的chain合并

代码语言:javascript复制
from itertools import chain

a1 = User.objects.filter(id__gt=8)
a2 = User.objects.filter(id__lt=4)

a3 = chain(a1, a2)
这时候a3是个可迭代对象,把a1和a2分别求出来之后合并成了一个可迭代对象,
他可以作用于其他可迭代对象中他可以把不同model的对象合并,类似于与list相加

0 人点赞