【问题标题】:paginate_queryset() got an unexpected keyword argument 'view'paginate_queryset() 有一个意外的关键字参数“视图”
【发布时间】:2021-04-15 08:20:30
【问题描述】:

在运行以下代码时,添加分页后出现“paginate_queryset() 出现意外的关键字参数 'view'”错误

views.py

class UsersList(ListAPIView,LimitOffsetPagination):
    permission_classes = (permissions.IsAuthenticated, IsVerified,permissions.IsAdminUser)


    @swagger_auto_schema(
        query_serializer=PaginationSerializer,
        responses={status.HTTP_200_OK: UserOutputSerializer(many=True)},
        operation_id="list_users",
    )
    def get(self, request, *args, **kwargs):
        qs = User.objects.filter(is_verified=True, is_active=True).order_by('user_name')
        results = self.paginate_queryset(qs, request, view=self)
        users = UserOutputSerializer(results, many=True)
        return self.get_paginated_response(users.data)

urls.py

path('list_users/',UsersList.as_view(),name='list_users'),

【问题讨论】:

  • 您到底想在视图中传递什么?

标签: python python-3.x django django-rest-framework django-views


【解决方案1】:

通过重写 get 这样的方法,您正在丢弃有关 ListAPIView 的所有好东西。如果你想用户swagger_auto_schema,那么试试这样:

class UsersList(ListAPIView,LimitOffsetPagination):
    permission_classes = (permissions.IsAuthenticated, IsVerified,permissions.IsAdminUser)
    serializer_class = UserOutputSerializer
    paginate_by = 10
    queryset = User.objects.filter(is_verified=True, is_active=True).order_by('user_name')
   
    @swagger_auto_schema(
        query_serializer=PaginationSerializer,
        responses={status.HTTP_200_OK: UserOutputSerializer(many=True)},
        operation_id="list_users",
    )
    def get(self, request, *args, **kwargs):
        return super().get(request, *args, **kwargs)

【讨论】:

    猜你喜欢
    • 2012-11-06
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    • 2016-09-12
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多