我試圖在保存模型實例的同時調整圖像大小。如何在保存之前獲取Django ImageField的內容?
class Picture(models.Model):
image_file = models.ImageField(upload_to="pictures")
thumb_file = models.ImageField(upload_to="pictures", editable=False)
def save(self, force_insert=False, force_update=False):
image_object = Image.open(self.image_file.path)
#[...] nothing yet
super(Picture, self).save(force_insert, force_update)
問題是在保存模型之前self.image_file.path不存在。它返回一個正確的路徑,但圖像還沒有。由於沒有圖像,我無法在PIL中打開它來調整大小。
我想將縮略圖存儲在thumb_file(另一個ImageField)中,所以我需要在保存模型之前進行處理。
有沒有一種很好的方法來打開文件(也許在內存中獲取tmp圖像對象)還是必須先保存整個模型,調整大小然後再保存?
沒有它不工作,要麼.. > 'NoneType' 對象有沒有屬性 '讀' – JasonTS 2012-01-08 12:49:41