2017-11-25 90 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

相關問題