好吧,我試過關於一切,我無法得到這個工作。以編程方式將圖像保存到Django ImageField
- 我有一個ImageField的一個Django模型上它
- 我有下載經由HTTP(測試和工程)
- 的圖像被直接保存到「upload_to」文件夾(upload_to圖像代碼是被在ImageField字段設置的一個)
- 所有我需要做的是已經存在的映像文件的路徑與ImageField的
我寫這個代碼大約6種不同的方式聯繫起來。
我遇到的問題是我寫的所有代碼都會導致以下行爲: (1)Django將創建第二個文件,(2)重命名新文件,將_添加到文件名的末尾,然後(3)不傳輸任何數據,而是基本上保留一個空的重命名文件。 'upload_to'路徑中剩下的是2個文件,一個是實際的圖像,另一個是圖像的名稱,但是是空的,當然,ImageField路徑被設置爲Django試圖創建的空文件。
在這種不清楚的情況下,我會盡力來說明:
## Image generation code runs....
/Upload
generated_image.jpg 4kb
## Attempt to set the ImageField path...
/Upload
generated_image.jpg 4kb
generated_image_.jpg 0kb
ImageField.Path = /Upload/generated_image_.jpg
我怎麼能做到這一點,而無需Django的嘗試重新存儲文件?我真的很喜歡這樣的效果...
model.ImageField.path = generated_image_path
...但當然,這是行不通的。
是的,我已經經歷了其他問題了這裏就像this one以及Django的文檔上File
UPDATE 進一步測試後,在Windows Server上的Apache下運行時,它只做這種行爲。當在XP的'runserver'下運行時,它不會執行這種行爲。
我很難過。
這裏是一個成功的運行在XP代碼...
f = open(thumb_path, 'r')
model.thumbnail = File(f)
model.save()
另一個偉大的Django問題。我已經多次嘗試解決這個問題,但沒有運氣。上傳目錄中創建的文件被破壞,並且與原件相比只有一小部分(存儲在其他地方)。 – westmark 2009-10-08 20:48:59
你的更新不起作用 – AmiNadimi 2017-07-15 11:16:24