2013-09-27 36 views
1

我一直在使用Django imagekit没有在模板中的任何问题,但现在我需要在视图中没有范本中的网址,下面这个例子在imagekit文档:Django 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等...没有运气,任何想法如何得到它? Thx

回答

1

我从imagekit笔者在google imagekit group解决方案:

在我来说,我はnted与缓存文件交互,为了做到这一点,我们必须总结我的发电机与ImageCacheFile,像这样:

from imagekit.cachefiles import ImageCacheFile 

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

所以result对象是我所期待的,现在我可以读取URL只需使用result.url

+0

这是正确的。对于想知道什么是“myapp_images”的人,我想这是你保留自定义生成器的地方。你可以使用'from imagekit.generatorlibrary import Thumbnail'来代替。 – Wtower

0

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

要么你保存对象和手动生成URL,或者您可以使用ImageCacheFile这样的:

from imagekit.cachefiles import ImageCacheFile 

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

print file.url 
+0

感谢您的回答马里奥,但我不能使它的工作,我遇到了一些问题,“名称='the.jpg'”atributte,这是关闭的方式,再次感谢您的时间在这里回答。干杯。 – Leunam