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
Может ли кто-нибудь помочь мне.