Django-filter не использовать rawqueryset

у меня есть sql,

SELECT
    asset.id,
    region.id as region_id,
    asset.ip,
    asset.os_type,
    asset.status,
    asset.device_type_id
FROM
    region_info AS region
    JOIN computer_info AS computer ON region.id = computer.region_id
    JOIN computer_cabinet_info AS cabinet ON computer.id = cabinet.computer_id
    JOIN asset_location_info AS location ON cabinet.id = location.cabinet_id
    JOIN asset_server_info AS asset ON location.asset_id = COALESCE ( asset.parent_id, asset.id ) 
WHERE
    asset.del_flag = 0

я не могу использовать django orm, поэтому я использую raw sql. но django-фильтр должен использовать queryset, потому что rawqueryset не имеет метода .all().

вот мой набор представлений:

from rest_framework.viewsets import GenericViewSet
from rest_framework.mixins import ListModelMixin
class RegionAssetViewSet(ListModelMixin, GenericViewSet):
    serializer_class = AssetServerInfoSerializer
    filter_backends = [DjangoFilterBackend]
    filter_class = ServerFilter

    def get_queryset(self):
        queryset = RegionAssetListVirtual.objects.raw(region_asset_sql)
        return queryset

Может ли кто-нибудь помочь мне.

Вернуться на верх