джангонавт.ru

Archive for the ‘thumbnail’ tag

Использование sorl.thumbnail без template tags

without comments

Практически в каждом django-проекте рано или поздно встает вопрос о генерировании превьюшек для картинок.  Одним из наиболее простых и удобных решений для этого является sorl.thumbnail.  Это приложение позволяет генерировать превьюшки либо прямо в шаблоне через тег {% thumbnail %}, либо используя в моделях специальное поле ImageWithThumbnailsField.  В подавляющем большинстве случаев этого достаточно, но иногда возникает необходимость получить превьюшку в python-коде прямо по месту, без переделывания моделей.

К примеру может захотеться видеть совсем маленькие, нигде больше не используемые превьюшки в списке объектов в админке. Делается это на удивление просто.

class PatternAdmin(admin.ModelAdmin):
    list_display = ('icon', '__unicode__',)
    list_display_links = ('__unicode__',)

    def icon(self, obj):
        from sorl.thumbnail.main import DjangoThumbnail
        thumbnail = DjangoThumbnail(obj.photo, (60, 60))
        return u'<img src="%s" border="0" alt="" width="%s" height="%s" />' % \
                            (thumbnail.absolute_url,
                             thumbnail.width(), thumbnail.height())
    icon.short_description = u'Фото'
    icon.allow_tags = True

В результате получаем вот такой список объектов:

sorl.thumbnail в django admin

Written by finn

Май 2nd, 2009 at 10:23 пп