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