我已将我的站点配置为发送我记录的错误消息,自从升级到 sorl-thumbnail 12.4.1 以来,我一直收到这些错误消息:
missing file_ argument in get_thumbnail()
这是发出此错误的代码行:
我看到我是写这一行的人,将其从异常更改为已记录的错误:0375ffe9b66e571bfeb7581fb47174f50b47468f
我这样做是基于@mariocesar在这里的评论: https :
关于
raise ValueError('missing file_ argument in get_thumbnail()')
的事情我们可能需要在 DEBUG=False 中保持沉默,但保持错误。 这是一个常见的问题。
也刚刚升级到 12.4.1,我开始在我们的日志中看到这个错误。
这可以追溯到#472。 sorl-thumbnail 的旧行为是可以传递实际上没有文件的文件字段,该字段解析为空字符串。 get_thumbnail
将返回 None,因此模板标签将呈现空替代。
这显然在最新版本中发生了变化!
预期的行为是什么? 如果我们应该用{% if object.my_image_field %}
包装我们所有的缩略图调用 - 那么我将只更新我的代码。 如果这是一个回归 - 我愿意创建一个 PR 来解决这个问题,但我想知道它是否需要先修复。
PyPi 上发布的旧版本 12.4a1 确实具有您所描述的行为,@tomkins。 我认为这是最初打算的行为。 这就是文档所说的并且七年来一直在说的内容:
使用
empty
功能,当源解析为空值或无效图像源时,会渲染empty
部分,您可以将其视为缩略图未定义时的渲染。
自 PyPI 上发布以来, @mariocesar提交了此 17748e5c26384e9af25e2d5515496a50ea6f3701 ,这导致缺少file_
参数引发异常。
为了让测试通过,我在这个 pull request #493 和这个 rebased commit 0375ffe9 中更改了这个代码,根据@mariocesar在评论https://github 中的建议,将异常转换为记录的错误
也许我们应该将模板标签更改get_template
在传递空字符串或 None 值时不调用get_template
的函数体记录错误(或抛出错误)例外)。 我绝对不希望人们必须修改他们的所有模板以包含{% if object.my_image_field %}
包装!
让我们保持开放,直到它在 PyPI 上发布。
知道什么时候会在 pypi 上发布吗? 仍然收到 12.4.1 的错误
+1
刚刚遇到同样的错误,我的sentry.io
日志文件报告了错误。
你好。 PyPI 中上游可用版本的此修复程序是否有任何更新? 我的项目按预期工作,但是在使用创建的临时文件来验证我的测试的 POST 请求时,我偶然发现了这个错误。 有解决方法吗?
@sebastian-code 在我们等待 PyPI 上发布新版本时,您可以从 GitHub 安装它,如下所示:
$ pip install -e git+https://github.com/jazzband/sorl-thumbnail.git@b6358d234d7de3927a2666a2a5ab3d7870c0e1d3#egg=sorl_thumbnail
您可以将b6358d234d7de3927a2666a2a5ab3d7870c0e1d3
替换
我不认为在 bug 被发布之前保持开放的价值。
@timgraham我想我知道。 我更喜欢 GitHub 提交者在 PyPI 上发布相应的错误修复之前保持问题处于开放状态。 当我在一个发布的项目中遇到一个 bug 时,我经常尝试搜索它的 bug 报告,然后如果我找不到一个未解决的问题,我会提交一个新的。 即使我确实找到了旧的已关闭问题,我也会提交一个新问题,假设出现回归。 如果仅在实际发布错误修复时才关闭错误报告,则可以避免此问题。
我同意@Flimm我认为这也有助于开发人员跟踪他们自己的项目状态@timgraham
最有用的评论
@timgraham我想我知道。 我更喜欢 GitHub 提交者在 PyPI 上发布相应的错误修复之前保持问题处于开放状态。 当我在一个发布的项目中遇到一个 bug 时,我经常尝试搜索它的 bug 报告,然后如果我找不到一个未解决的问题,我会提交一个新的。 即使我确实找到了旧的已关闭问题,我也会提交一个新问题,假设出现回归。 如果仅在实际发布错误修复时才关闭错误报告,则可以避免此问题。