我一直在使用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
答案 0 :(得分:1)
在我的情况下,我想与缓存文件进行交互,为了做到这一点,我们必须使用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