2011-05-26 28 views
0

嘗試顯示較大圖像的縮略圖時出現上述錯誤。全尺寸的圖像工作正常。在呈現時捕獲IOError:嘗試查看圖像時出現'沒有此文件或目錄'錯誤

以下是models.py文件中圖像定義的代碼。

def _get_thumb_url(self, folder, size): 
     """ get a thumbnail giver a folder and a size. """ 
     if not self.coverart: 
      return '#' 
     upload_to = path.dirname(self.coverart.path) 
     tiny = path.join(upload_to, folder, path.basename(self.coverart.path)) 
     tiny = path.normpath(tiny) 
     if not path.exists(tiny): 
      import Image 
      im = Image.open(self.coverart.path) 
      im.thumbnail(size, Image.ANTIALIAS) 
      im.save(tiny, 'JPEG') 
     return path.join(path.dirname(self.coverart.url), folder, path.basename(self.coverart.path)) 

    def get_thumb_url(self): 
     return self._get_thumb_url('thumb_100_100', (100,100)) 

    def thumb(self): 
     """ Get thumb <a>. """ 
     link = self.get_thumb_url() 
     if link is None: 
      return '<a href="#" target="_blank">NO IMAGE</a>' 
     else: 
      return '<img src=%s />' % (link) 
    thumb.allow_tags = True 

    def fullpicture(self): 
     """ Get full picture <a>. """ 
     link = "%s%s" % (settings.MEDIA_URL, self.coverart) 
     if link is None: 
      return '<a href="#" target="_blank">NO IMAGE</a>' 
     else: 
      return '<img src=%s />' % (link) 
    thumb.allow_tags = True 

這是導致我的麻煩在我的模板文件中的行:

<div class="coverart" >{{ spmodel.thumb|safe }}</div> 

如果我將其更改爲這個代替,圖像顯示細膩(顯然不是一個縮略圖,雖然這是我想要的):

<div class="coverart" >{{ sp.fullpicture|safe }}</div> 

有沒有人有什麼想法可能會導致此問題?

回答

0

我認爲im.save不會創建目錄,如果它們不存在。最好創建具有​​所需路徑的空文件,然後打開它,然後將圖像保存到它。

相關問題