2016-10-15 46 views
0

我想了解Django ImageKit如何在創建縮略圖文件方面發揮作用(例如)。我使用的示例代碼:Django ImageKit何時創建縮略圖文件?

from django.db import models 
 
from imagekit.models import ImageSpecField 
 
from imagekit.processors import ResizeToFill 
 

 
class Profile(models.Model): 
 
    avatar = models.ImageField(upload_to='avatars') 
 
    avatar_thumbnail = ImageSpecField(source='avatar', 
 
             processors=[ResizeToFill(100, 50)], 
 
             format='JPEG', 
 
             options={'quality': 60})

我從上傳的應用程序的顯示圖片。這適用於配置文件表中創建的條目以及在AWS S3中創建的文件。我很難理解的是avatar_thumbnail的創建時間/位置/方式。我是否必須明確地做些事情才能將它與頭像圖像一起存儲在AWS S3中?或者是僅在飛行中創建的avatar_thumbnail?我需要將它存儲在某個地方供以後使用。

回答

0

我沒有得到它100%,但從我所瞭解的縮略圖是一個生成器,只有在第一次請求縮略圖時調用,然後cached

我個人對此的體驗也是如此。我通過管理界面創建了模型的虛擬實例(與上面相同的代碼)。然後我創建了一個HTML頁面,用模板標籤顯示縮略圖(<img src="instance.thumbnail.url">)。檢查我的文件夾,到目前爲止沒有生成圖像。然後我啓動服務器,導航到該頁面。在第一次嘗試時,需要花費不尋常的時間加載(這表示正在創建縮略圖),但隨後加速。文件在那裏。