Я написал следующий код:
class RateViewSet(viewsets.ViewSet):
serializer_class = RateSerializer
permission_classes = [permissions.IsAuthenticated]
def per_league(self, request):
league_id = request.query_params.get('league')
if(league_id):
rates = []
for market in Market.objects.all():
total = len(Prediction.objects.filter(market=market, fixture__league__id=league_id).all().exclude(status='Win'))
hits = 0
if(total):
hits = round(len(Prediction.objects.filter(market=market, fixture__league__id=league_id, status="Win").all()) / len(Prediction.objects.filter(market=market, fixture__league__id=league_id).all().exclude(status='Win')), 2)
rates.append({'market': market, 'rate': hits})
page = self.paginate_queryset(rates)
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)
serializer = self.get_serializer(fixtures, many=True)
return Response(serializer.data)
return HttpResponseServerError
class RateSerializer(serializers.Serializer):
market = MarketSerializer(read_only=True, many=False)
rate = serializers.DecimalField(max_digits=4, decimal_places=2)
Когда я отправляю запрос на эту конечную точку, я получаю в ответ следующее: "'RateViewSet' object has no attribute 'paginate_queryset'"
что имеет смысл, но я не могу понять, как я могу разбейте результат на страницы, если к сериализатору не прикреплена модель. У меня есть следующий пользовательский класс разбивки на страницы:
class PaginationSerializer(pagination.PageNumberPagination):
page_size_query_param = 'page_size'
def get_paginated_response(self, data):
return Response({
'next': self.get_next_link(),
'previous': self.get_previous_link(),
'count': self.page.paginator.count,
'pages': self.page.paginator.num_pages,
"page_size": settings.REST_FRAMEWORK["PAGE_SIZE"],
'results': data
})
Кто может мне с этим помочь?