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

时间:2017-11-25 19:30:06

标签: 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)

我不明白为什么如果我打印出len()

,如果它返回项目时没有返回chained_list

1 个答案:

答案 0 :(得分:4)

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