2011-07-23 159 views
0

我想從視圖中動態設置文件存儲路徑,而不管實際的media_root路徑如何。這可能嗎。我已經看過自定義存儲對象,並且我知道自定義upload_to方法調用。目前我有一個方法,當我的ImageField模型upload_to被指定時被調用。這讓我可以更改media_root中的目錄。我試圖做一個類似的重寫FileSystemStorage類,但無論它設置爲我認爲它是有約束的,我可以在視圖內修改它。如果fileupload處理程序是要走的路,我會好奇如何實現一個。django自定義文件存儲路徑

回答

1

如果您在upload_to中指定的路徑從/開始,那麼它將被視爲絕對路徑。通過這個,你可以設置任何你想要的路徑,而不管MEDIA_ROOT

1

您可以在您的視圖中執行此操作path = default_storage.save(filePath, ContentFile(file)) 其中filePath是您需要存儲的文件路徑,file是用戶上傳的文件。這個函數將通過存儲文件返回你的路徑。

file = request.FILES['filee'] 
filePath = '%s/%s' % ('path/to/directory', file.name) 
file = file.read() 
path = default_storage.save(filePath, ContentFile(file))