2014-02-12 44 views

回答

1

我通過使用APIView而不是CreateAPIView解決了問題。這裏是我寫的課程:

class VoteCreateAPIView(views.APIView): 
    def post(self, request, *args, **kwargs): 
     vote = request.POST.get('vote', '') 
     # here some validation 
     Vote.objects.create(
      user=request.user, 
      vote=vote) 
     return response.Response({'vote': vote}, status=status.HTTP_200_OK) 

我仍然很好奇,如果有更好的方法來做到這一點。

+0

您是否找到正確的方法來做到這一點或者爲什麼最終會發生這種情況?我是否理解正確,在這裏你基本上是從更通用的''APIView''繼承,然後手動實現你自己的帖子? – gozzilli

+1

是的。我確實如你所說。最後它很簡單。問題的原因是,默認情況下'CreateAPIView'會創建一個響應,如果你有很多對象的話,這個響應是巨大的。另一種解決方案是從CreateAPIView繼承並修改響應和查詢。 –

相關問題