GenericAPIView 简单使用
list
APIView
class DemoView(APIView):
def get(self, request):
queryset = models.UserInfo.objects.all()
pager = PageNumberPagination()
result = pager.paginate_queryset(queryset, request, self)
ser = DemoModelSerializer(instance=result, many=True)
response = pager.get_paginated_response(ser.data)
return response
GenericAPIView
from rest_framework.generics import GenericAPIView
class Demo1View(GenericAPIView):
queryset = models.UserInfo.objects.all()
serializer_class = DemoModelSerializer
pagination_class = PageNumberPagination
def get(self, request):
queryset = self.get_queryset()
result = self.paginate_queryset(queryset)
ser = self.get_serializer(intance=result, many=True)
response = self.get_paginated_response(ser.data)
return response
单个
APIView
class DemoDetailView(APIView):
def get(self, request, pk):
queryset = models.UserInfo.objects.get(pk=pk)
ser = DemoModelSerializer(instance=queryset, many=False)
return Response(ser.data)
过滤类
from rest_framework.filters import BaseFilterBackend
class MyFilterBackend(BaseFilterBackend):
def filter_queryset(self, request, queryset, view):
# 在此做筛选
return queryset
GenericAPIView
from rest_framework.generics import GenericAPIView
class Demo1DetailView(GenericAPIView):
queryset = models.UserInfo.objects.all()
serializer_class = DemoModelSerializer
pagination_class = PageNumberPagination
filter_backends = [MyFilterBackend, ]
def get(self, request, pk):
# 查询+校验权限
queryset = self.get_object()
ser = self.get_serializer(instance=queryset)
return Response(ser.data)
本文作者:Sherwin
本文链接:https://www.cnblogs.com/sherwin1995/p/16774829.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
分类:
标签:
,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步