我正在尝试测试将多个图像上传到我的服务器。这是序列化程序:
class ImageSerializer(serializers.ModelSerializer):
image = serializers.ListField(
child=serializers.ImageField(allow_empty_file=True)
)
图像工厂:
def get_image():
image = Image.new("RGB", (2000, 2000))
file = tempfile.NamedTemporaryFile(suffix=".jpg")
image.save(file)
return file
测试:
def test_upload_multiple_images(self):
self.image = get_image()
with open(self.image.name, "rb") as file:
payload = {
"image": [file, file]
}
response = self.client.post(
reverse("gallery-list", args=[self.item.pk]),
data=payload,
format="multipart"
)
通过 Postman 进行测试时,阵列中的图像被正确保存。但是,在使用测试用例时,我从响应中收到以下消息:
{'image': [{'message': 'The submitted file is empty.', 'code': 'empty'}]}
在添加 allow_empty_file=True 之前,返回了其中两条消息。 有没有人知道为什么会发生这种情况?