ListCreateAPIView 如何工作?

How ListCreateAPIView works?

我是 Django Rest Framework 的新手,我想清楚地了解 ListCreateAPIView 的工作原理。 我们只需要提供一个 querysetserializer_class,它就会创建一个读写端点。

我正在寻找有关官方文档的信息,但没有找到我想要的。

任何信息都会对我有所帮助。

ListCreateAPIView 是一个通用 APIView,它允许 GET(列表)和 POST(创建)请求。 您可以阅读source code,也许可以更好地理解

基本上,ListCreateAPIView 有方法 get(),它将调用 mixins.ListModelMixin 中的方法 list()list 方法将实例化序列化器、过滤器、查询集分页和 return 基于您在 class.

中定义的查询集和序列化器的响应。

如果你想更深入地理解我建议你阅读源代码,一开始它可能会令人困惑,但是当你开始使用它时你会更好地理解它。

故事从get方法开始,所以调用get时会调用list方法
这就是 list 方法看起来如何调用 queryset 并进行分页然后序列化数据以作为 response

返回
    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)

更多信息,可以访问这个link https://www.cdrf.co/3.12/rest_framework.generics/ListAPIView.html