Имя ключа данных Access Json

Я хочу получить данные с request.data.columns во фронтенде. Я могу сделать это с помощью ViewSet с методом list, но как сделать это с помощью generics.APIVIEW. Ниже приведены мои наборы представлений и код generics:

class TestList(viewsets.ViewSet):
     queryset = Test.objects.all()
     def list(self,request):
         serializer = TestSerializer(self.queryset, many = True)
         return Response({'columns': serializer.data})

class TestList(generics.RetriveAPIView):
    queryset = Test.objects.all()
    serializer_class = TestSerializer
class TestList(APIView):
     queryset = Test.objects.all()
     def list(self,request):
         serializer = TestSerializer(self.queryset, many = True)
         return Response({'columns': serializer.data})

измените ваш urls.py следующим образом.

path(r"url", TestList.as_view({"get": "list"}))

Правильный код:

class TestList(APIView):
     queryset = Test.objects.all()
     def list(self,request):
         queryset = self.get_queryset()
         serializer = TestSerializer(queryset, many = True)
         return Response({'columns': serializer.data})

Подробно о том, почему мне пришлось добавить queryset = self.get_queryset() вместо прямого доступа к self.queryset.Из официальной документации drf:

queryset - Набор queryset, который должен использоваться для возврата объектов из этого представления. Обычно вы должны либо установить этот атрибут, либо переопределить метод get_queryset(). Если вы переопределяете метод представления, важно вызвать get_queryset(), а не обращаться к этому свойству напрямую, так как queryset будет оценен один раз, и эти результаты будут кэшироваться для всех последующих запросов.

Вернуться на верх