2011-05-27 53 views
0

我無法搞清楚什麼路徑定義給同時節省了我的文件如何給路徑 -同時節約使用PIL圖像在Django

class Photos(models.Model): 
    photo = models.ImageField(upload_to=get_photo_storage_path) 

MY縮略圖模式 -

class PhotosThumbnails(models.Model): 
     photo = models.ForeignKey(Photos) 
     dp = models.ImageField(upload_to=get_thumbnail_storage_path) 

而我的觀點 -

photo_thumbnail_obj = PhotosThumbnails(photo = photos_object) 
size = 40, 40 
im = Image.open(str(obj.photo.path)) 
im.thumbnail(size) 
im.save(?? , 'JPEG') 
photo_thumbnail_obj.dp = ?? 
photo_thumbnail_obj.save() 

幫助Python人們,我想用相對路徑保存它。

回答

3

我總是保存絕對系統路徑。

im.save('/var/www/_uploads/myphoto.jpg', 'JPEG') 

既然你在Django的時候,你可能也想做到這一點:

im.save(settings.UPLOAD_DIRECTORY + 'myphoto.jpg', 'JPEG') 
+1

擴大戰果,我建議使用絕對路徑,基於項目的相對路徑,使用'os.path.abspath'。 – 2011-05-27 07:33:14

+2

可能更好的做法是設置settings.UPLOAD_DIRECTORY +'myphoto.jpg',所以我們不是硬編碼。 – Jordan 2011-05-27 07:34:27

+0

考慮使用settings.STATICFILES_DIR(是一個元組,所以index [0]獲得第一個路徑)。另外settings.MEDIA_URL。這會給你從模板訪問/static/imgs/yours.jpg的自由。 – Luchux 2013-01-06 04:54:50