2009-12-20 32 views
6

Django文檔(http://docs.djangoproject.com/en/dev/topics/testing/#django.test.client.Client.post)說,要做到這一點:如何在Django測試中提交圖片上傳?

>>> c = Client() 
>>> f = open('wishlist.doc') 
>>> c.post('/customers/wishes/', {'name': 'fred', 'attachment': f}) 
>>> f.close() 

但是,當我這樣做,現場有錯誤消息「提交的文件是空的。」這聽起來像一個PIL問題,但表格在實際網站上工作正常。

讀取文件併發送該文件而不是僅僅處理不起作用,其行爲與傳遞空字符串相同。

回答

6

好吧,我想通了。我對多個字段使用了相同的虛擬圖像,Django在驗證第一個字段後未重置指針。

此外,文檔中的示例並未顯示圖像需要以二進制模式打開。

+0

我希望你在/ doc中打開/打開票來修復這個例子;) – SmileyChris

0

我認爲open需要一個相對於被調用的文件路徑。

我不確定測試運行時會在哪裏,但也許嘗試一個絕對路徑,看看它是否工作?

+0

我正在使用絕對路徑,圖像打開正常。 –