【问题标题】:InvalidImageFormatError Exception The source file does not appear to be an imageInvalidImageFormatError 异常 源文件似乎不是图像
【发布时间】:2020-11-19 18:44:02
【问题描述】:

所以我使用回退默认图像来避免 500 错误并且它不成功。 我不断收到相同的错误“InvalidImageFormatError:源文件似乎不是图像”。

就我而言,我尝试对不存在的图像进行缩略图。 但是假设如果图像不存在,它应该使用默认的图像作为后备。 有任何想法吗?有人以同样的方式发生并找到了解决方案? 就我而言,这是我的代码{% oscar_thumbnail child_image.original|default:'image/default.png' "450x450" format="WEBP" padding=True as thumb_child %}

我正在从 sorl-thumbnails 迁移,它默认带有 django_oscar for easy_thumbnails。 标签 OSCAR_THUMBNAIL 由 django_oscar 使用,oscar 将其替换为设置中的缩略图,在本例中为 easy_thumbnails。我已经调试了代码,它很好地进入了easy_thumb类......并且参数正确到达。 问题是,当它试图处理的图像不存在时,它不会让我退缩。 我有一个包含相关图像的产品的数据库,其中许多在我的本地环境中不存在,因为在生产中它们位于 s3 中,并且我没有在我的开发环境中为 s3 配置我的设置。但是,嘿,问题是它应该在没有图像时回退,或者有对物理上不存在的图像的引用。如果它存在,我打算使用它进行后备,但它一直给我错误 500 并且它没有向我显示页面,我得到了 django 页面,但有例外。哦,我也试过原生的easy_thumb标签...

有什么想法吗?提前致谢!

【问题讨论】:

    标签: python python-3.x django django-oscar easy-thumbnails


    【解决方案1】:

    问题如下,对于默认过滤器取值之前的表达式必须被评估为False,因为这个原因它爆炸了,因为没有图像,缩略图无法创建对象,解决方案是另一个过滤器检查图像是否存在于存储中,并返回一个布尔值。

    {% oscar_thumbnail child_image.original|image_exist|default:'image/default.png' "450x450" format="WEBP" padding=True as thumb_child %}
    

    谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-05
      • 1970-01-01
      • 1970-01-01
      • 2019-07-19
      • 1970-01-01
      • 1970-01-01
      • 2013-08-12
      • 2011-07-30
      相关资源
      最近更新 更多