2010-11-26 52 views
2

我在嘗試子類ImageFieldDjango storring文件。檢測新文件

基本上我的MyImageField必須在上傳一張圖片時保存兩張圖片。首先它是名字爲blablabla.jpg的原始圖片,其次是名稱爲blablabla_thumb.jpg的實際縮略圖。但在數據庫中,我只有一個領域可以通過oroginal圖片。要獲取圖片thumbnale,我將創建MyImageField的方法,當我做model.MyImageFiled.thumb時調用tumb方法,它返回前綴爲thumb的文件的路徑。

問題是如何檢測FileField是新文件還是隻是模型正在保存而不更改文件。我需要它來決定是否需要製作新的縮略圖(裁剪,轉換和其他東西)。因此,如果用戶只是將MyFileField放在他的模型中,而不是對模型中的名稱或描述進行更改,則不會再次製作文件大拇指。

我在這裏看到的唯一方法是保存創建的日期並進行比較。如果不同使拇指,否則不要。

回答

2

這也許爲你工作Django Thumbnails

+0

這實際上是我試圖發明的同一輛自行車。非常感謝! – Pol 2010-11-26 19:56:30

+0

這就是正確的!! – eos87 2010-11-26 20:03:09

3

這djangothumbnails.com從來就不是什麼好東西,現在是不僅如此,但也無人維護,更好地利用sorl-thumbnail或容易縮略圖。

1

這是一個普遍的問題,我想 - 如何在模型save()方法中檢測文件是否剛剛上傳。通常情況下,您可以在第一次看到文件時進行一次只處理(例如,生成縮略圖)。

我用,我不喜歡這個解決辦法,是做加工,然後調用超(爲MyModel,個體經營)之前前綴一個已知的字符串(「P $」),上傳的文件名.save()來將其存儲在數據庫中。

每當我得到一個文件上傳,我看看它是否以「p $」開頭,表示不需要處理。

我認爲Django應該在某個地方提供自己的標誌來表示上傳剛剛發生。