第一个障碍是将文档翻译成英文。他们想要传达的是您需要一个通用的视图集。通用viewsets从扩展通用ApiViews这对分页查询集和响应额外的类方法。
另外,您提供了自己的
list方法,但是默认的分页过程实际上是由mixin处理的:
class ListModelMixin(object): """ List a 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)
简单的解决方案,使用框架代码:
class Foo(mixins.ListModelMixin, viewsets.GenericViewSet): queryset = User.objects.all() serializer = UserSerializer
更为复杂的解决方案是,如果您需要一个自定义
list方法,则应按照自己认为合适的方式编写,但要采用上述mixin代码段的样式。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)