You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sorl-thumbnail无法创建缓存文件夹,缩略图生成报错

Sorl-Thumbnail 无法生成缩略图报错解决方案

错误原因分析

从报错信息[Errno 2] No such file or directory: 'D:\developer\love\love_prim\media\Photo object (11)'可以明确看出:sorl-thumbnail 没有拿到图片的实际文件路径,而是直接使用了 Photo 模型对象的字符串表示,导致它去 media 目录下寻找名为Photo object (11)的文件,自然找不到,进而无法生成缓存缩略图。

解决步骤

  • 修正模板中的 thumbnail 调用
    检查模板代码,确保传递给thumbnail标签的是 Photo 对象的图片字段(比如image字段),而非对象本身。
    错误示例:

    {% thumbnail photo "960x339" as im %}
        <img src="{{ im.url }}">
    {% endthumbnail %}
    

    正确示例(假设图片字段名为image):

    {% thumbnail photo.image "960x339" as im %}
        <img src="{{ im.url }}">
    {% endthumbnail %}
    
  • 验证模型字段配置
    确认 Photo 模型中的图片字段(如models.ImageField)的upload_to参数设置正确,且原始图片确实已保存到media/profiles目录下。例如:

    class Photo(models.Model):
        image = models.ImageField(upload_to='profiles/')
        # 其他字段...
    
  • 清理无效缓存并重新生成
    执行以下命令彻底清理旧缓存,然后重启服务测试:

    python manage.py thumbnail clear
    python manage.py thumbnail cleanup
    

    手动创建的cache目录无需删除,sorl 会自动在其中生成对应子目录和缩略图文件。

  • 检查 MEDIA 相关配置
    确保settings.py中的 MEDIA 配置正确:

    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    MEDIA_URL = '/media/'
    

    开发环境下,需在项目根 urls.py 中添加 media 文件的访问路由:

    from django.conf import settings
    from django.conf.urls.static import static
    
    urlpatterns = [
        # 其他路由...
    ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    

内容的提问来源于stack exchange,提问作者Jgold

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 03:07:14