2017-11-25 124 views
1

组合了两个模型中没有len()。一个模型的字段被注释到另一个模型,以便它们可以合并。但是,当我尝试返回数据时,我得到了TypeError: object of type 'Response' has no len()。我已经在stackoverflow上跟着几个例子,它似乎并没有工作。类型'响应'的对象在DRF

这是我有:

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

你返回从get_queryset一个响应返回的项目。但是该方法应该返回一个查询集,顾名思义。

+0

你是什么意思?它不会返回此处显示的'query_set',而是返回模型。 – JamAndJammies

+0

您不应该从该方法返回Response的实例。你应该返回一个查询集。 –

+0

谢谢!它指出了我正确的方向。 – JamAndJammies