带有嵌套JSON参数的POST请求在request.POST中格式错误

时间:2018-10-12 10:09:43

标签: python json django post pytest

在集成测试中,我尝试使用嵌套的JSON参数发出POST请求(这只是我尝试的方法之一):

test_function(admin_client):
    admin_client.post(some_url,
                      json.dumps(some_nested_json),
                      content_type='application/json',
                      headers={'Content-type': 'application/json; charset=utf-8'})

我还尝试了各种不同的参数组合等等,这些都是我在网络上可以找到的,但是我无法在收到的request.JSON中获得正确的JSON输出。

我得到以下三种情况之一:

  • request.POST包含第一级JSON以及第二级JSON
  • 的数组
  • request.POST包含第一级JSON和一个空的第二级JSON
  • request.POST为空,但request.body包含整个嵌套的JSON(采用预期格式)

我在这里想念什么?我正在使用 Python 2.7

1 个答案:

答案 0 :(得分:1)

这是django中的预期行为。 Json请求不在request.POST中,而在request.body中。您需要在视图中手动执行json.loads(request.body)