我想使用客户端将字典传递给函数。它看起来像这样:
response = self.client.post(
'/upload_image/', {'image': image, 'tags': ['orion', ]})
在我看来,它正在将数据发布到我有:
print(request.POST)
image = request.POST['image']
tags = reguest.POST['tags']
请求时存在 MultiValueDictKeyError。发布["图像"]。
print(request.POST)
显示字典如下所示:
<QueryDict: {'tags': ['orion']}>
图像对象是:
image = SimpleUploadedFile(
'kitties.png', b'kitties_in_boxes', 'image/png')
这是关于图像对象的,因为当我将其他内容作为图像(例如字符串(传递时,它运行良好。
我想还有另一种方法可以测试上传图像功能,但是有人知道为什么这不起作用吗?
Django 将上传的文件与其他提交的数据分开。tags
键在request.POST
退出,但image
应该在request.FILES
。据我所知,您正在做的是使用测试客户端测试文件上传的正确方法。
有关 django 中表单和文件的更多信息。