Django docs(http://docs.djangoproject.com/en/dev/topics/testing/#django.test.client.Client.post)说这样做:
>>> c = Client()
>>> f = open('wishlist.doc')
>>> c.post('/customers/wishes/', {'name': 'fred', 'attachment': f})
>>> f.close()
但是当我这样做时,该字段会显示错误消息“提交的文件为空”。这有点像PIL问题,但表单在实际网站上运行良好。
读取文件并发送该文件而不仅仅是句柄也不起作用,并且与传递空字符串的行为相同。
答案 0 :(得分:6)
好的,我明白了。我在多个字段使用相同的虚拟图像,Django在验证第一个字段后没有重置指针。
此外,文档中的示例也未显示图像也需要以二进制模式打开。
答案 1 :(得分:0)
我认为open
需要一个相对于调用它的文件路径。
我不确定在运行测试时会出现什么情况,但是可能尝试使用绝对路径并查看它是否有效?