2009-11-15 157 views

回答

12

有幾種方法可以做到這一點。

首先,您可以查看Django文檔中的handling uploaded files。如果您仔細閱讀,基本上可以在您處理表單的相同部分處理視圖中文件的上載。

另一個選擇,我認爲會更好的一個選擇是使用custom file storage system。你可以非常簡單地使用現有的基礎作爲基礎,但只需更改位置,然後將其用作FileField中的參數。例如:

from django.core.files.storage import FileSystemStorage 

my_store = FileSystemStorage(location='/some/other/dir') 

class SomeModel(models.Model): 
     file = models.FileField(storage=my_store) 

希望有幫助!

2

考慮到在所有Django中唯一實際使用MEDIA_ROOT的方法是確定上傳文件的存儲位置,似乎將MEDIA_ROOT指向希望上傳文件的位置更合理,然後使用其他設置您的靜態資產的路徑。這是0123,和django-staticfiles採用的方法,它們使用STATIC_URL和STATIC_ROOT設置。

請注意,即使the documentation page on serving static assets in development不再建議爲此目的使用MEDIA_ROOT,它將使用您自己的STATIC_DOC_ROOT設置進行演示。