在我们项目中,由于各种原因或者分表后,我们需要查询两个表然后将其合并并排序来序列化返回给前端,那么我们合并查询集:
代码:
# -*- coding: utf-8 -*-
# !/usr/bin/python3
import os, datetime, time, random,base64, json
import sys
import oss2
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.append(os.path.join(BASE_DIR, 'qianhe'))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "qianhe.settings.settings")
import django
django.setup()
from itertools import chain
from django.db.models import F, Q, Sum
from task.models import Task, ChannelTask, TaskArea, ExtendTask, BigExtendTask, TaskOrderMiddleware, TaskOrder, AuthorizerInfo, ApplyPutTask, TaskOrderFirst
def update_data():
"""
更新数据
"""
query1 = TaskOrder.objects.all()
query2 = TaskOrderFirst.objects.all()
print(query1)
print(query2)
quer = list(chain(query1, query2)) # 不排序
print(quer)
sort_quer = sorted(chain(query1, query2), key=lambda instance: instance.create_time) # 排序
print(sort_quer)
if __name__ == '__main__':
update_data()