Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django测试-如何使用JSON发送HTTP Post多部分_Python_Django_Http_Testing_Post - Fatal编程技术网

Python Django测试-如何使用JSON发送HTTP Post多部分

Python Django测试-如何使用JSON发送HTTP Post多部分,python,django,http,testing,post,Python,Django,Http,Testing,Post,在django测试中,我想发送一个HTTP Post多部分,其中包含2个参数: JSON字符串 档案 def测试上传请求(self): temp_file=tempfile.NamedTemporaryFile(delete=False).name 打开(临时文件)作为f: 文件格式={ “文件”:f } my_json=json.dumps({ “名单”:{ “名称”:“测试名称”, “说明”:“测试说明” } }) response=self.client.post(反向('api:up

在django测试中,我想发送一个HTTP Post多部分,其中包含2个参数:

  • JSON字符串
  • 档案
def测试上传请求(self):
temp_file=tempfile.NamedTemporaryFile(delete=False).name
打开(临时文件)作为f:
文件格式={
“文件”:f
}
my_json=json.dumps({
“名单”:{
“名称”:“测试名称”,
“说明”:“测试说明”
}
})
response=self.client.post(反向('api:upload'),
我的儿子,
内容=文件形式,
content_type=“application/json”)
删除操作系统(临时文件)
def上传(请求):
打印请求.FILES['file']
打印json.loads(request.body)
我的代码不起作用。有什么帮助吗? 如果需要,我可以使用外部python库(我正在尝试使用请求
谢谢

使用
应用程序/json
内容类型,您无法上载文件

请尝试以下操作:

视图:

测试:

def upload(request):
    print request.FILES['file']
    print json.loads(request.POST['json'])
    return HttpResponse('OK')
def test_upload_request(self):
    with tempfile.NamedTemporaryFile() as f:
        my_json = json.dumps({
            "list": {
                "name": "test name",
                "description": "test description"
            }
        })
        form = {
            "file": f,
            "json": my_json,
        }
        response = self.client.post(reverse('api:upload'),
                                    data=form)
        self.assertEqual(response.status_code, 200)