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