2011-11-29 18 views
1

比方說,我有這樣的形式:如何在django中未使用模型備份的表單上使用相同的存儲空間?

class SimpleUploadForm(forms.Form): 
    file = forms.FileField() 

我有這樣的模式:

class MyModel(models.Model): 
    first_file = models.FileField(upload_to="uploads/%Y/%m/%d",storage=MyCustomStorage()) 
    second_file = models.FileField(upload_to="uploads/%Y/%m/%d",storage=MyCustomStorage()) 

爲此我還提供了一個的ModelForm。爲SimpleUploadForm視圖部分是這樣的:

def simple_upload(request): 
    ... 
    if request.method == "POST": 
     form = SimpleUploadForm(request.POST,request.FILES) 
     if form.is_valid(): 
     # what do I need to do here to save the file in the same place where the `MyModel` ModelForm is saving them? 
     else: 
     ... 

我不知道如何使用storageupload_to領域沒有的ModelForm。

回答

1

您可以像使用其他任何類一樣使用存儲。其API是well-documented

或者您可以在settings.py中設置DEFAULT_FILE_STORAGE,它將自動用於您的所有文件操作。

+0

如何複製'upload_to ='上傳/%Y /%m /%d「'? – Geo

+0

@Tempus你的存儲應該處理這個是'save'方法。或者,如果您從'FileSystemStorage'繼承,則可以將'location' arg傳遞給它的構造函數。而'ModelForm'不是一個選項? – DrTyrsa

+0

在這種情況下,我並不需要存儲任何數據到數據庫。我只是處理報告並顯示處理結果。有沒有可能使用沒有表格的ModelForm? – Geo

相關問題