2009-04-09 56 views
0

我正在使用Django和Satchmo進行一些本地開發。當我通過管理員在本地上傳產品圖像時,圖像的路徑顯示爲絕對路徑,以驅動器盤符的形式顯示,而不是正確的相對路徑。當我在本地上傳產品圖片時,爲什麼我會在Satchmo中獲得絕對的網址?

更奇怪的是,的Satchmo節省了原始圖像和它產生在兩個縮略圖我/media/目錄和/media/images/目錄,後者在這裏我想他們去。

的relavent設置如下:

# path relative to the settings.py file 
DIRNAME = os.path.abspath(os.path.dirname(__file__).decode('utf-8')) 

MEDIA_ROOT = os.path.join(DIRNAME, 'media') 
MEDIA_URL = 'http://localhost:8000/' 
ADMIN_MEDIA_PREFIX = '/media/' 

我就像三重檢查local_settings.py文件,並沒有所說的「媒體」在任何地方提到,所以我敢肯定,有沒有設置覆蓋。

如果有幫助,我在Windows上,但我正在使用適合我的路徑的unix符號。

回答

1

原來的問題是settings.py文件中的斜槓方向有問題。

通常情況下,我創造我的settings.py文件relative_path()功能,這樣我就可以輕鬆設置:

MEDIA_ROOT = absolute_path('media') 

我使用的Satchmo的版本鼓勵使用DIRNAME的設置,而不是:

DIRNAME = os.path.abspath(os.path.dirname(__file__).decode('utf-8') 

的問題是,使用這種技術,我MEDIA_ROOT被設定爲這樣:

MEDIA_ROOT = os.path.join(DIRNAME, 'media') 

但是,這是使用Windows反斜槓而不是Unix正斜槓。我已經解決它:

MEDIA_ROOT = os.path.join(DIRNAME, 'media').replace('\\', '/') 
1

這是一個Windows唯一的錯誤。我正在Windows上開發一個Satchmo應用程序,它是這樣做的,但是當我在Linux上部署時,它工作得很好。我剛進入數據庫並在我的Windows盒子上進行測試時編輯路徑。

相關問題