Имя ключа данных 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 будет оценен один раз, и эти результаты будут кэшироваться для всех последующих запросов.