Использовать django-filter во ViewSet

Как можно использовать django-filter во viewsets.ViewSet? (использовать modelViewSet или ApiView итд нельзя) Что нужно переопределить/изменить? Я понимаю что ViewSet дает все писать с нуля, CRUD у меня на нем получилось сделать без проблем, а вот прикрутить фильтрацию без ModelViewSet вообще не получается. Фильтрация по многим параметрам в том числе и с вычислениями, djanfo-filter с этим справляется(уже проверено) но не работает на ViewSet :( Вот как я себе это представляю:

class MortgageViewSet(viewsets.ViewSet):

    """ 
        # C этим кодом и ModelsViewSet работает как надо, но нужно юзать просто ViewSet
        queryset = Mortgage.objects.all()
        serializer_class = FiltersSerializer
        filter_backends = (filters.DjangoFilterBackend,)
        filterset_class = ProductFilter
        filterset_fields = ('__all__')
    """


    def list(self, request):
        if len(self.request.query_params) <= 0:
            #Если url не содержит параметров - возвращаем НЕ фильтрованный кверисет
        else:
            #Если в url хоть 1 параметр есть - возвращаем фильтрованный кверисет

Можно ли из функции заставить работать filterset_class например как в ModelViewSet? Если да - как это сделать?

в документации должно быть описано

думаю можно попробовать определить класс фильтра и использовать его в view

import django_filters

class ProductFilter(django_filters.FilterSet):

    class Meta:
        model = Product
        fields = '__all__'

class MortgageViewSet(viewsets.ViewSet):

    def list(self, request):
        filte = ProductFilter(request.GET, queryset=Product.objects.all())
        ...
Вернуться на верх