Django easy_thumbnails получает доступ к URL-адресам изображений

Можно ли получить доступ к URL-адресам созданных изображений easy_thumbs?

У меня есть модель с ImageField и ModelForm чтобы соответствовать.

# models.py

class ModelWithAnImage(models.Model):
    image = ThumbnailerImageField(
        upload_to='images',
    )

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

# somewherethatdefinitelygetsloaded.py

from easy_thumbnails.signals import saved_file
from easy_thumbnails.signal_handlers import generate_aliases_global


saved_file.connect(generate_aliases_global)

Это работает нормально, но возможно ли тогда получить доступ к URL для этих больших пальцев?

,

model_with_an_image.image.url возвращает исходное изображение (как и следовало ожидать).

Цель состоит в том, чтобы отправить URL-адрес большого пальца через AJAX на внешний источник, чтобы {% thumbnail %} не собирается помогать мне в данный момент.

# requirements.txt

Django==1.5.1
Pillow==2.0.0
boto==2.9.0
django-storages==1.1.8
easy-thumbnails==1.2

1 ответ

Решение

Документация указывает на thumbnail_url Фильтр шаблона, который может возвращать URL шаблона в шаблоне.

Вы можете вызвать фильтр шаблона как настоящую функцию из вашего представления (или где-либо еще), и он должен работать так же хорошо, как и в шаблоне, например:

from easy_thumbnails.templatetags.thumbnail import thumbnail_url

thumbnail_url = thumbnail_url(model_with_an_image, 'small')

За кулисами фильтр просто вызывает get_thumbnailer так что вы также можете написать:

thumbnailer = get_thumbnailer(model_with_an_image)
thumbnailer.generate = False  # so a not generate a thumb if sthg went wrong
thumbnail = thumbnailer.get_thumbnail(thumbnail_options)
#  do stuff with thumbnail.url
Другие вопросы по тегам