【问题标题】:How to submit image uploads in Django tests?如何在 Django 测试中提交图片上传?
【发布时间】:2009-12-20 20:09:27
【问题描述】:

Django 文档 (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 问题,但该表单在实际站点上运行良好。

读取文件并发送它而不仅仅是句柄也不起作用,其行为与传递空字符串相同。

【问题讨论】:

    标签: django testing


    【解决方案1】:

    好的,我想通了。我对多个字段使用相同的虚拟图像,并且 Django 在验证第一个字段后不会重置指针。

    文档中的示例也没有显示图像也需要以二进制模式打开。

    【讨论】:

    • 我希望你为/打开一张票来修复文档中的示例;)
    【解决方案2】:

    我认为open 需要一个相对于调用它的位置的文件路径。

    我不确定在运行测试时会在哪里,但也许可以尝试使用绝对路径,看看它是否有效?

    【讨论】:

    • 我使用的是绝对路径,图片打开正常。
    猜你喜欢
    • 2016-12-01
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 2018-02-09
    • 2017-05-04
    • 1970-01-01
    • 2021-02-10
    相关资源
    最近更新 更多