[英]save multiple uploaded files in django
我想在我的應用程序中上傳和保存多個文件
<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
保存所有上傳的文件? 謝謝
編輯
Myform
是此模型的模型形式。
class Docs(models.Model):
name = models.CharField(max_length=128)
file = models.FileField(max_length=100, upload_to="documents/")
您可以在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')
...
@faksetru的答案不包括save()方法。 所以,如果你想保存你的實例,它看起來像這樣:
# in views.py
from .models import Docs
...
form = MyForm(request.POST, request.FILES)
if form.is_valid():
name = form.cleaned_data['name']
for f in request.FILES.getlist('file'):
instance = Docs(name=name, file=f)
instance.save()
return HttpResponse('OK')
有關更多詳細信息,請參閱Django的官方文檔 。
更新:
我在這里寫了一個完整的答案,請查看。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.