Django easy_thumbnails访问图像URL

时间:2013-04-23 16:36:40

标签: django json thumbnails easy-thumbnails

是否可以访问easy_thumbs创建的图像的URL?

我有一个模型,其中ImageFieldModelForm匹配。

# models.py

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

关注documentation我在上传图片时使用信号生成两个拇指。

# somewherethatdefinitelygetsloaded.py

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


saved_file.connect(generate_aliases_global)

这样可以正常工作但是可以访问那些拇指的网址吗?

model_with_an_image.image.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 个答案:

答案 0 :(得分:2)

文档指向thumbnail_url模板过滤器,该过滤器可以返回模板中的thumnail的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