由于不必要的查询,django-rest-framework CreateAPIView中的MemoryError

时间:2014-02-12 20:04:14

标签: django django-rest-framework

我想使用django-rest-framework中的CreateAPIView创建一个对象。调用视图时,我得到一个MemoryError。这可能是因为视图试图在可浏览的响应中显示所有350000个现有对象。

如何阻止视图执行相应的查询?定义postget_queryset方法无济于事。

1 个答案:

答案 0 :(得分: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)

如果有更好的方法,我仍然会好奇。