Как работает ListCreateAPIView?
Я новичок в Django Rest Framework и хочу четко понять, как работает ListCreateAPIView.
Мы просто можем предоставить queryset
, serializer_class
и он создаст конечную точку чтения-записи.
Я искал информацию в официальном документе, но не нашел того, что мне нужно.
Любая информация будет полезна для меня.
ListCreateAPIView
- это общий APIView, который позволяет выполнять запросы GET (список) и POST (создание).
Вы можете прочитать исходный код и, возможно, получить лучшее понимание
В основном, ListCreateAPIView
имеет метод get()
, который вызывает метод list()
в mixins.ListModelMixin
. Метод list
будет экземпляром сериализатора, фильтром, постраничной обработкой набора запросов и возвращением ответа на основе набора запросов и сериализатора, которые вы определили в своем классе.
Если вы хотите более глубокого понимания, я рекомендую вам прочитать исходный код, сначала он может быть запутанным, но когда вы начнете его использовать, вы поймете его лучше.
история начинается с метода 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