2015-11-04 33 views
0

我能夠成功上傳圖像。要麼有或沒有多個models.ImageField在我的模型

現在我想要做以下事情: 開發芹菜的任務,將上傳的圖像轉換爲3個不同的維度(比如300x300,120x120和48x48)。

我想知道什麼是最好的辦法:

要改變我的形象類,以便只與4個models.ImageField字段(原件和它的3個新版本)對象或保持它只有一個models.ImageField並在數據庫上創建額外的對象。

我想了解一下內存的影響:

在情況下,我選擇了第一個選項(添加額外的ImageField字段),當我從數據庫中檢索對象,所有字段將被同時讀取。 這不是問題(數據庫中的字段只包含帶有圖像路徑的字符串)。

問題是:django會在從數據庫中檢索數據後,或剛訪問相應的ImageField時,創建4個圖像對象實例?

謝謝。

+0

我想你已經回答了你自己的問題。數據庫條目將只包含路徑。所以這不是一個真正的問題。你的第二個問題是數據何時被檢索。這取決於你如何得到你的對象。例如,'object = Model.objects.get(id = 1)'將獲得內存中的對象。 – zanderle

+0

對不起,如果我沒有讓自己清楚。我知道MyObject = Model.objects.get(id = 1)將實例化一個對象。我懷疑的是:如果這個對象有4個ImageField類型的字段,那麼當我檢索myObject的時候,所有這些字段都會被實例化爲對象,或者當我明確調用ImageField時(例如:myObject.image01,myObject.image02和等等)。 –

回答

1

我會使用一個ImageField並使用easy_thumbnails來生成縮略圖。

您可以使用aliases預定義縮略圖。

然後按照芹菜準則here

+0

我會按照你的建議和使用easy_thumbnails。謝謝。 –

相關問題