使用modelviewset时从request.data检索空数据

时间:2016-02-02 16:02:40

标签: django api rest frameworks

我正在使用DRF ModelViewSet并尝试添加新端点以通过帖子上传一些文件。

我的观点:

class TreeViewSet(viewsets.ModelViewSet):
    permission_classes = [IsAuthenticated, TokenHasReadWriteScope]
    lookup_field = 'id'
    queryset = Tree.nodes

    def get_serializer_class(self):
        return partial(TreeSerializer, user=self.request.user.userprofile.id)

    def get_object(self):
        qset = copy.deepcopy(self.get_queryset())
        try:
            return qset.get(id=self.kwargs[self.lookup_field])
        except:
            raise Http404("No Person matches the given query.")

    @detail_route(
        methods=['post'],
        url_path='gedcom')
    def upload_gedcom(self, request, id=None):
        print request.data

端点是:

  

.... / tree / {pk} / gedcom /(upload_gedcom)

  • 问题: print request.data 返回空的QueryDict。
  • 我已经尝试过这个解决方案: Django Rest Framework: empty request.data并没有为我工作。

  • 为了测试我正在使用邮递员: here is the Postman screenshot

  • 在实现此端点之前,我在其他视图中有其他的解决方法(upload_gedcom),但我使用了list_router而不是详细的。这种方式有效,但在概念上是错误的。

1 个答案:

答案 0 :(得分:1)

也许问题可能与此相关:Cannot post to DRF modelviewset - request.data immediately emptied会将您带到此DRF错误:HTML form in generics.listCreateAPI is not taking values #3574 。我不确定这一点,如果有人能给我一些反馈,我将非常感激。 我希望这可以帮助某人。