如何在版本3.2.5的sorl缩略图中获取python代码中的缩略图?

时间:2011-03-15 20:17:33

标签: django sorl-thumbnail

sorl缩略图的文档仍然引用get_thumbnail函数,但这在v.3.2.5中不存在。 (cannot import name get_thumbnail

对于我的生活,我找不到任何关于这个函数被改变的参考,或者如何在这个版本的sorl的python代码中生成缩略图。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

在我的特定情况下,我使用了一个定义了extra_thumbnails的ThumbnailField:

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']

答案 1 :(得分:1)

好吧,几个星期前我发现我之前实际上已经解决了这个问题,我甚至写了一篇关于它的简短blog post而没有记住, - 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导入,但两种方式都应该有效。