在集成测试中,我尝试使用嵌套的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 和一个空的第二级 JSONrequest.POST
为空,但request.body
包含整个嵌套的 JSON,采用预期的格式
我在这里错过了什么?我正在使用Python 2.7。
这是 django 中的预期行为。Json 请求不在request.POST
中,而是在request.body
中。您需要在视图中手动执行json.loads(request.body)
。