1

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

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()

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

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

我一直在尝试str(result), result.url, result.name,等等......没有运气,知道如何得到它吗?谢谢

4

2 回答 2

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.

于 2013-10-21T13:07:41.593 回答
0

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

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

from imagekit.cachefiles import ImageCacheFile

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

print file.url
于 2013-09-28T10:54:48.807 回答