9

テンプレートにある複数のファイルをアプリケーションにアップロードして保存したい。アップロードを 押すと、多くのアップロードされたファイルのリストの最後にある 1 つのファイルのみが保存されているようです。フォームを使用してアップロードしたすべてのファイルを保存するにはどうすればよいですか? ありがとう
<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/")
4

2 に答える 2

13

MyFOrm でrequest.FILES['file']orを使用している可能性があります。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')
...
于 2013-11-23T13:44:17.823 に答える