django rest framework 查询多个表的数据,并拼合在一起,自定义过滤条件,自定义排序方式, 实现方法?

** 我的应用需求:**
** 查询效果是: 如mysql : select union select where order by 这个效果,
查询多个表的数据,并拼合在一起,自定义过滤条件,自定义排序方式,问题是基于django rest framework 怎么来实现这功能.
请回复 示范 代码,多谢! **

# 下面是尝试写的, 但排序出现问题------------------------------------------------------------------------------------------------
from drf_multiple_model.views import ObjectMultipleModelAPIView
from drf_multiple_model.views import FlatMultipleModelAPIView
from api.pager import LimitPagination
from rest_framework import filters
from django.http import request
from rest_framework.pagination import PageNumberPagination
from drf_multiple_model.pagination import MultipleModelLimitOffsetPagination
from pro_test.myoffice import models
 
class LimitPagination(MultipleModelLimitOffsetPagination): #limit分页器
    default_limit = 2
class SearchGroup(FlatMultipleModelAPIView):
    # authentication_classes=[]     #取消全局用户认证
    # permission_classes=[]       #取消全局权限验证
    # throttle_classes=[]
    def initial(self,request,*args, **kwargs):
        super(SearchGroup,self).initial(request,*args, **kwargs)
        # 代码执行到这里时,说明请求已经收到,才可以从url获取数据
        #从url中提取参数
        project_name = request.query_params.get("project_name")
        orderdate_gte = request.query_params.get("orderdate_gte")
        orderdate_ite = request.query_params.get("orderdate_ite")
        sample_name = request.query_params.get('sample_name')
        if not orderdate_gte:
            orderdate_gte ='0001-01-01'
        if not orderdate_ite:
            orderdate_ite='2050-01-01'
        if not project_name:
            project_name=''
        if not sample_name:
            sample_name=''
        # 修改API视图的querylist属性,注意每次请求只可以self的,不要修改类,否则引发bug
        self.querylist=[
            {'queryset':models.Rebar.objects.filter(project_name__contains=project_name,sample_name__contains=sample_name,order_date__range=[orderdate_gte,orderdate_ite]),
            'serializer_class': SearchGroupRebarSerializer,
            },
            {'queryset':models.ConcreteCube.objects.filter(project_name__contains=project_name,sample_name__contains=sample_name,order_date__range=[orderdate_gte,orderdate_ite]),
            'serializer_class': SearchGroupConcreteCubeSerializer,
            },
        ]
    pagination_class=LimitPagination   # 这个类分页只能用limit,不能用其它
    
    """
    上面代码的问题描述:
     分页器 LimitPagination: (在上面写了代码)
     当这个分页器设置 default_limit = 2 时,每页返回的是4行数据,每个objects.filter() 各2行数据 (这个问题倒是不大,问题是排序的问题),
     最大的问题是,返回的数据:  2行第一个objects.filter() 的数据, 再2行另一个objects.filter() 的数据,交替呈现 ,这肯定是不行的
     现在我要把的2个或多个 objects.filter() 返回的所有数据,统一按ID序号排序返回,或按日期排序返回,这才方便浏览,交替呈现不行,
     
    我的应用需求:
     查询效果是: 如mysql :  select.... union  select .... where .... order by ...     这个效果,
     查询多个表的数据,并拼合在一起,自定义过滤条件,自定义排序方式,问题是基于django rest framework 怎么来实现这功能.


你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。