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