Как сортировать и подсчитывать значения, когда они выбраны?

Я отправляю запрос на сайт https://swapi.dev/ полученные данные необходимо отсортировать:

Обеспечить функциональность для подсчета вхождений значений (комбинаций значений) для столбцов. Например, при выборе столбцов date и homeworld таблица должна показывать подсчеты следующим образом:

мой код не очень хорош, потому что я пишу что-то вроде этого в первый раз:

import requests
from rest_framework.views import APIView
from rest_framework.viewsets import ModelViewSet
from rest_framework import status
from rest_framework.response import Response
from datetime import datetime
from rest_framework import filters
from rest_framework.pagination import PageNumberPagination
from rest_framework.decorators import action


# class StarWarsAPIListPagination(PageNumberPagination):
#     page_size = 4
#     page_size_query_param = 'page_size'
#     max_page_size = 20


class StarView(APIView):
    # pagination_class = StarWarsAPIListPagination
    # filter_backends = (filters.OrderingFilter)
    # ordering_fields = ('name',)

    def get(self, request): 
        date = datetime.today()
        page = request.query_params.get('page', 1)
        url = f'https://swapi.dev/api/people/?page={page}'
        response = requests.get(url, date).json()
        return Response(response, status=status.HTTP_200_OK)


class StartDateView(APIView):

    def get(self, request): 
        date = datetime.today()
        page = request.query_params.get('page', 1)
        url = f'https://swapi.dev/api/people/?page={page}'
        response = requests.get(url).json()
        a = response['results'][0]['name']
        # a = response['results']
        # for i in range(len(a)):
        #     if a[i]["name"] == "R2-D2":
        #         return Response(a[i]['name'], status=status.HTTP_200_OK)
Вернуться на верх