2013-09-27 57 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