在django中保存多个上传的文件 [英] save multiple uploaded files in django
问题描述
< input type =textname =namevalue =/>
< input type =filename =filemultiple />
在我的模板中。当我点击上传,似乎
form = MyForm(request.POST,request.FILES)
只保存一个文件它是许多uloaded文件列表中的最后一个。如何能够使用表单
form = MyForm(request.POST,request.FILES)blah blah
保存所有上传的文件?感谢 修改
Myform
是一个模型表单这个模型。
class Docs(models.Model):
name = models.CharField(max_length = 128)
file = models.FileField(max_length = 100,upload_to =documents /)
你可以使用 request.FILES ['file']
或 request.FILE.get('文件')
在MyFOrm中。他们只返回一个文件。
使用 request.FILE.getlist('file')
以获取多个文件。
在您的看法中:
form = MyForm(request.POST,request.FILES)
如果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')
...
I want to upload and save multiple files in my application, I have
<input type="text" name="name" value="" />
<input type="file" name="file" multiple/>
in my template. when I hit upload, seems
form = MyForm(request.POST, request.FILES)
is only saving one file which is last in the list of the many uloaded files. How can I be able to save all the uploaded files using the form form = MyForm(request.POST, request.FILES) blah blah
? Thanks
Edit
Myform
is a model form from this model.
class Docs(models.Model):
name = models.CharField(max_length=128)
file = models.FileField(max_length=100, upload_to="documents/")
You maybe use request.FILES['file']
or request.FILE.get('file')
in MyFOrm. They only return a file.
Use request.FILE.getlist('file')
to get multiple files.
In your view:
....
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')
...
这篇关于在django中保存多个上传的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!