“响应”类型的对象在 DRF 中没有 len()

jai*_*ers 6 django django-rest-framework

我结合了两个模型。一个模型的字段被注释到另一个模型的字段,以便它们可以合并。但是,当我尝试返回数据时,我得到TypeError: object of type 'Response' has no len(). 我在 stackoverflow 上遵循了几个示例,但它似乎不起作用。

这是我所拥有的:

class ExploreAPIView(generics.ListAPIView):

    def get_queryset(self):
        merged_queryset = Place.get_queryset(self.request.user)
        usr_pks = [u.pk for u in merged_queryset]
        queryset = Place.objects.filter(pk__in=usr_pks)

        serialUser = UserSerializer( User.objects.annotate(time=Extract('date_joined','epoch')), many=True).data[:]
        serialPlace = PlacesSerializer(queryset, many=True).data[:]

        chained_list = sorted(serialPlace +serialUser, key=lambda x: x.get('time'))

        return Response(chained_list)
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它len()在返回项目时返回 no如果我打印出chained_list

Dan*_*man 13

您正在从 返回响应get_queryset。但是,顾名思义,该方法应该返回一个查询集。

  • 您不应该从该方法返回 Response 的实例。您应该返回一个查询集。 (2认同)