渲染时捕获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,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),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>
是否有人对导致此问题的原因有任何想法?     

解决方法

我认为
im.save
如果目录不存在,则不会创建目录。最好创建具有​​所需路径的空文件,将其打开,然后将图像保存到该文件。