【问题标题】:Retrieving empty data from request.data when using modelviewset使用模型视图集时从 request.data 中检索空数据
【发布时间】:2016-05-11 12:50:44
【问题描述】:

我正在使用 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 而不是详细的。这种方式可行,但在概念上是错误的。

【问题讨论】:

    标签: django api rest frameworks


    【解决方案1】:

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

    【讨论】:

    • 已解决:问题是我为 AUTHENTICATION_BACKENDS settings.py AUTHENTICATION_BACKENDS = ( 'oauth2_provider.backends.OAuth2Backend', 'django.contrib.auth.backends.ModelBackend', )使用了“'oauth2_provider.backends.OAuth2Backend'” >
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-23
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多