Django-rest-framework: 当使用可浏览 api 发布数据时,request.POST 为空 querydict,当使用 hhtpie 发布时 .. 它很好

创建于 2016-04-11  ·  4评论  ·  资料来源: encode/django-rest-framework

清单

  • [x] 我已经验证了该问题存在于 Django REST 框架的master分支。
  • [x ] 我在打开和关闭的工单中都搜索了类似的问题,但找不到重复项。
  • [x] 这不是一个用法问题。 (那些应该被引导到讨论组。)
  • [x] 这不能作为第三方库处理。 (我们希望新功能尽可能以第三方库的形式出现。)
  • [x] 我已将问题简化为最简单的情况。
  • [x] 我已将失败的测试作为拉取请求。 (如果您不能这样做,我们仍然可以接受该问题。)

    重现步骤

步骤1 。 当数据发布到 apiview 时,打印 POST 查询字典。

@api_view(['GET', 'POST'])
def 片段列表(请求):
如果 request.method == 'POST':
从 pprint 导入 pprint 作为 pp
pp(request.data)
pp(请求.POST)
序列化器= SnippetSerializer(数据=request.data)
如果 serializer.is_valid():
序列化器.save()
返回响应(serializer.data,状态=状态。HTTP_201_CREATED)
返回响应(serializer.errors,状态=状态。HTTP_400_BAD_REQUEST)

第2步 。 将 '{"code": "print 123"}' 从可浏览 api 发布到snippet_list apiview。

预期行为

两个 pprint 的结果: {u'code': u'print 12dgdf3'}
<QueryDict: {}>

实际行为

两个 pprint 的结果: {u'code': u'print 12dgdf3'}
{u'code': u'print 12dgdf3'}

最有用的评论

mybad .. request.POST 中只有表单数据可用

没错,是的。 使用request.data

所有4条评论

mybad .. request.POST 中只有表单数据可用,我假设使用 Http POST 发送的任何数据都将在 request.POST 中。 关闭这个问题,tnx

mybad .. request.POST 中只有表单数据可用

没错,是的。 使用request.data

如果有人有兴趣在哪里可以找到官方答案:

https://www.django-rest-framework.org/tutorial/2-requests-and-responses/#request -objects

我还是不明白为什么POST是空的。 :(
有教程或链接吗?

此页面是否有帮助?
0 / 5 - 0 等级