ListCreateAPIView 如何工作?
How ListCreateAPIView works?
我是 Django Rest Framework 的新手,我想清楚地了解 ListCreateAPIView 的工作原理。
我们只需要提供一个 queryset
、serializer_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
我是 Django Rest Framework 的新手,我想清楚地了解 ListCreateAPIView 的工作原理。
我们只需要提供一个 queryset
、serializer_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