0
假設我有以下的模型定義:如何將URL中的內容獲取到模型中的Django ImageField中?
class Image(models.Model):
image = models.ImageField(upload_to='images')
現在再假設我想借此遠程URL的內容,並插入一行到模型之上。拿這個形象的比方:
https://www.python.org/images/python-logo.gif
我開始用下面的代碼:
from tempfile import NamedTemporaryFile
fn = 'https://www.python.org/images/python-logo.gif'
# Read the contents into the temporary file.
f = NamedTemporaryFile()
f.name = fn
f.write(urlopen(fn).read())
f.flush()
# Create the row and save it.
r = Image(image=File(f))
r.save()
我看不出爲什麼這不應該工作。有點調試後,我發現:
- 遠程圖像沒有錯誤下載並存儲在臨時文件
- 的文件在
MEDIA_ROOT
目錄中創建的,但有一個大小爲0 - 行未保存,但也不例外!
任何人都可以對這裏發生的事情有所瞭解嗎?我究竟做錯了什麼?有沒有更簡單的方法來做到這一點?
我在Linux上運行Django 1.4,如果有幫助的話。
這工作!非常感謝你。 –