Как работает ListCreateAPIView?

#python #django #django-rest-framework

Вопрос:

Я просто новичок в среде Django Rest, и я хочу четко понимать, как работает ListCreateAPIView. Мы просто можем предоставить queryset , serializer_class и это создаст конечную точку чтения-записи.

Я искал информацию в официальном документе, но не нашел того, что мне нужно.

Любая информация будет полезна для меня.

Ответ №1:

история начинается с get метода, поэтому при вызове get он будет вызывать list метод,
вот как выглядит метод list, который вызовет queryset и произведет разбивку на страницы, а затем сериализует данные, возвращаемые в качестве ответа

     def list(self, request, *args, **kwargs):
            queryset = self.filter_queryset(self.get_queryset())
    
            page = self.paginate_queryset(queryset)
            if page is not None:
                serializer = self.get_serializer(page, many=True)
                return self.get_paginated_response(serializer.data)
    
            serializer = self.get_serializer(queryset, many=True)
            return Response(serializer.data)
 

для получения дополнительной информации вы можете перейти по этой ссылке
https://www.cdrf.co/3.12/rest_framework.generics/ListAPIView.html

Ответ №2:

ListCreateAPIView это общий APIView, который позволяет ПОЛУЧАТЬ (список) и ОТПРАВЛЯТЬ (создавать) запросы. Вы можете прочитать исходный код и, возможно, лучше понять

В принципе, ListCreateAPIView есть метод get() , который будет вызывать метод list() mixins.ListModelMixin . list Метод будет создавать экземпляр сериализатора, фильтровать, разбивать на страницы набор запросов и возвращать ответ на основе набора запросов и сериализатора, которые вы определили в своем классе.

Если вы хотите более глубокого понимания, я рекомендую вам прочитать исходный код, сначала это может сбить с толку, но когда вы начнете его использовать, вы поймете это лучше.