Django Imagekit - 如何获取不在模板中的URL?

时间:2013-09-27 22:30:14

标签: python django imagekit

我一直在使用django imagekit而模板中没有任何问题,但现在我需要在视图中获取url而不是模板,在imagekit docs中遵循此示例:

source_file = open('/path/to/myimage.jpg')
image_generator = Thumbnail(source=source_file)
result = image_generator.generate()

所以我这样做了:

course_img = open(settings.MEDIA_ROOT+str(course.image), 'rb+')     
image_generator = myapp_images.Thumbnail100x100(source=course_img)
result = image_generator.generate()

然后,我尝试从“结果”变量中获取网址,但我不知道如何:

details_html += "<img class='img-rounded' src='"+ str(result) +"'/>

我一直在尝试使用str(result), result.url, result.name等等......没有运气,任何想法如何获得它? THX

2 个答案:

答案 0 :(得分:1)

我从google imagekit group

中的imagekit作者那里得到了解决方案

在我的情况下,我想与缓存文件进行交互,为了做到这一点,我们必须使用ImageCacheFile包裹我的生成器,如下所示:

from imagekit.cachefiles import ImageCacheFile

image_generator = myapp_images.Thumbnail00x100(source=course.image)
result = ImageCacheFile(image_generator)

所以result对象就是我所期待的,现在我只能使用result.url来阅读网址。

答案 1 :(得分:0)

生成器本身不允许你动态地执行此操作,它会生成类似文件的对象,这意味着它不会将文件保存在磁盘上,这意味着没有文件名,所以没有URL名称..

您可以手动保存对象并生成网址,也可以像这样使用ImageCacheFile

from imagekit.cachefiles import ImageCacheFile

file = ImageCacheFile(image_generator, name='my_image.thumb.jpg')
file.generate()

print file.url