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相加
posted @ 2019-12-19 15:53  番茄土豆西红柿  阅读(519)  评论(0编辑  收藏  举报
TOP