sorl thumbnail 的文档仍然引用了该get_thumbnail
函数,但这在 v.3.2.5 中不存在。( cannot import name get_thumbnail
)
对于我的一生,我找不到任何关于这个函数被更改为什么的参考,或者如何在这个版本的 sorl 的 python 代码中生成缩略图。有什么建议吗?
sorl thumbnail 的文档仍然引用了该get_thumbnail
函数,但这在 v.3.2.5 中不存在。( cannot import name get_thumbnail
)
对于我的一生,我找不到任何关于这个函数被更改为什么的参考,或者如何在这个版本的 sorl 的 python 代码中生成缩略图。有什么建议吗?
在我的特殊情况下,我使用了一个 ThumbnailFieldextra_thumbnails
定义:
class SomeModel(models.Model):
# other kwargs omitted for clarity
image = ThumbnailField(extra_thumbnails={
'inline_preview': {'size': (600,400)},
'small_thumb': {'size': (75,75), 'options':['crop', 'sharpen']})
该image
字段将具有由extra_thumbnails
选项定义的图像的字典,作为一个名为的属性,令人惊讶的是extra_thumbails
:
somemodel_instance.image.extra_thumbnails['inline_preview']
好吧,几周前我发现我之前确实解决了这个问题,我什至写了一篇关于它的简短博客文章,但不记得了,-smacks head。如果它只是你所追求的 URL,你可以这样做:
from solr.thumbnail.main import DjangoThumbnail
img = imageObject # a normal image url returned from an ImageField
size = (100,100) # any tuple
img_resize_url = unicode(DjangoThumbnail(img, size))
这有点 hackish,但它比 Chris 的解决方案更好,因为您可以调用任何缩略图大小,而无需调整该extra_thumbnails
字段。话虽如此,我确实发现他的解决方案更清洁,因为不需要从 sorl 进行内部导入,但两种方式都应该有效。