/ apartments /的AssertionError,期望从视图返回“ Response”,“ HttpResponse”或“ HttpStreamingResponse”,

问题描述 投票:0回答:1

[每当我向'apartment'端点发出'GET'请求时,都会收到'AssertionError'。我在没有分页的情况下尝试了此操作,但得到了响应,但是当我切换回使用分页时,出现了“ AssertionError”。

我已经遍历了代码库,并对照DRF的通用代码库进行了验证,我无法发现任何错误。我无法为自己的生活弄清楚哪里出了问题。

views.py

class ApartmentList(APIView,MyPaginationMixin):
    authentication_classes = [TokenAuthentication]
    permission_classes = [AllowAny]
    apartments = Apartment.objects.all()
    serializer = ApartmentSerializer
    pagination_class = api_settings.DEFAULT_PAGINATION_CLASS

    def get(self,request):
        page = self.paginate_queryset(self.apartments)
        if page is not None:
            serializer = self.serializer(page, many=True)
            return self.get_paginated_response(serializer.data)

mixins.py

class MyPaginationMixin(object):

    @property
    def paginator(self):
        """
        The paginator instance associated with the view, or `None`.
        """
        if not hasattr(self, '_paginator'):
            if self.pagination_class is None:
                self._paginator = None
            else:
                self._paginator = self.pagination_class()
        return self._paginator

    def paginate_queryset(self, queryset):
        """
        Return a single page of results, or `None` if pagination 
        is disabled.
        """
        if self.paginator is None:
            return None
        return self.paginator.paginate_queryset(
            queryset, self.request, view=self)

    def get_paginated_response(self, data):
        """
        Return a paginated style `Response` object for the given 
        output data.
        """
        assert self.paginator is not None
        return self.paginator.get_paginated_response(data)
python django python-3.x api django-rest-framework
1个回答
0
投票

这里:

def get(self,request):
  page = self.paginate_queryset(self.apartments)
  if page is not None:
      serializer = self.serializer(page, many=True)
      return self.get_paginated_response(serializer.data)

您不处理pageNone的情况。至于为什么会这样,请检查您的分页mixin类,并问问自己,让shuch mixin没有定义的分页类是否真的有意义...

© www.soinside.com 2019 - 2024. All rights reserved.