我想使用Client将字典传递给函数。它看起来像是:
response = self.client.post(
'/upload_image/', {'image': image, 'tags': ['orion', ]})
在我看来,它向我发布的数据有:
print(request.POST)
image = request.POST['image']
tags = reguest.POST['tags']
请求时有一个MultiValueDictKeyError .POST [' image']。
print(request.POST)
显示字典如下:
<QueryDict: {'tags': ['orion']}>
图像对象是:
image = SimpleUploadedFile(
'kitties.png', b'kitties_in_boxes', 'image/png')
关于图像对象,因为当我将其他东西作为图像传递时(例如字符串),它运作良好。
我认为还有另一种方法可以测试上传图片的功能,但有人知道为什么这不起作用吗?
答案 0 :(得分:1)
Django将上传的文件与其他提交的数据分开。 tags
密钥会在request.POST
中退出,但image
应位于request.FILES
。从我所看到的,你正在做的是用测试客户端测试文件上传的正确方法。