Как получить миниатюру в коде Python в версии 3.2.5 из sorl thumbnail? - PullRequest
3 голосов
/ 15 марта 2011

В документации к эскизу sorl по-прежнему упоминается функция get_thumbnail, но ее нет в v.3.2.5.(cannot import name get_thumbnail)

Насколько я могу судить, я не могу найти никаких ссылок на то, на что была изменена эта функция, или на то, как создать миниатюру в коде Python этой версии sorl.Любой совет?

Ответы [ 2 ]

2 голосов
/ 24 марта 2011

В моем конкретном случае я использовал ThumbnailField со значением extra_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']
1 голос
/ 21 апреля 2011

Ну, несколько недель назад я обнаружил, что на самом деле решил эту проблему раньше, и я даже написал короткое сообщение в блоге об этом, не вспоминая, - хлопает головой .Если вам нужен только 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))

Это немного хакерски, но это лучше, чем решение Криса, в том смысле, что вы можете вызывать любой размер миниатюры, без необходимости адаптацииполе extra_thumbnails.При этом я нахожу его решение чище в том смысле, что не требуется никакого внутреннего импорта из sorl, но оба способа должны работать.

...