3

我要上傳並保存在我的應用程序的多個文件的多個上傳的文件,我有
<input type="text" name="name" value="" />
<input type="file" name="file" multiple/>

在我的模板。當我點擊上傳,似乎
form = MyForm(request.POST, request.FILES)
只保存一個文件,這是最後一個在許多被加載文件的列表中的文件。我如何能夠使用form = MyForm(request.POST, request.FILES) blah blah的形式保存所有上傳的文件?由於保存在Django

編輯
Myform從這個模型的模型形式。

class Docs(models.Model):  
    name = models.CharField(max_length=128) 
    file = models.FileField(max_length=100, upload_to="documents/") 

回答

4

你也許在MyForm的使用request.FILES['file']request.FILE.get('file')。他們只返回一個文件。

使用request.FILE.getlist('file')獲取多個文件。


在你看來:

.... 
form = MyForm(request.POST, request.FILES) 
if form.is_valid(): 
    name = form.cleaned_data['name'] 
    for f in request.FILES.getlist('file'): 
     Docs.objects.create(name=name, file=f) 
    return HttpResponse('OK') 
... 
+0

感謝@falsetru,如何打算使用的形式來保存文件? – Alexxio

+0

@AlexKasina,正如我在你的問題中所評論的,沒有'MyForm'代碼就很難回答。 – falsetru

+0

@AlexKasina,定義一個'save'方法(例如)以某種方式使用'request.FILE.getlist'。 (我只能這樣回答) – falsetru