具有嵌套 JSON 参数的 POST 请求在 request.POST 中格式不正确



在集成测试中,我尝试使用嵌套的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

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

最新更新