Как кэшировать результаты кверисетов в ListAPIView при включенных пагинации, фильтрации, упорядочивании?

Как я могу кэшировать результаты запросов (и аннулировать кэш) в ListAPIView, когда возможны пагинация, фильтрация и упорядочивание? Обратите внимание, что мне нужно аннулировать кэш для каждой компании, поэтому если для конкретной компании создается новый объект Item, мне нужно аннулировать его.

from rest_framework.generics import ListAPIView
from rest_framework.pagination import PageNumberPagination


class CustomPaginationClass(PageNumberPagination):
    page_size = "30"
    page_size_query_param = 'perPage'
    max_page_size = 10000


class ItemListApiView(ListAPIView):
    model = Item
    authentication_classes = (SessionAuthentication, )
    serializer_class = ItemSerializer
    permission_classes = (HasAccessToItems, )
    pagination_class = CustomPaginationClass
    filter_backends = (filters.SearchFilter, DjangoFilterBackend, filters.OrderingFilter, )
    search_fields = ('user__name', )
    filter_fields = {
        'category_type__name': ['exact'],
        'item_type__name': ['exact'],
        'approver__name': ['exact'],
        'status': ['exact', 'in']
    }
    ordering_fields = '__all__'

    def get_queryset(self):
        qs = Item.objects.filter(company=self.request.user.company).select_related('company')

        if not self.request.user.is_all_items_enabled:
            qs = qs.filter(approver=self.request.user)

        return qs.order_by('-created')

    def get(self, request, *args, **kwargs):
        return self.list(request, *args, **kwargs)
Вернуться на верх