Skip to content

Commit

Permalink
[1.9.x] Fixed #26604 -- Added a multiple file upload example to topic…
Browse files Browse the repository at this point in the history
…s/http/file-uploads.txt.

Backport of 54febdb from master
  • Loading branch information
berkerpeksag authored and timgraham committed Jun 3, 2016
1 parent 16ce7a5 commit 7407440
Showing 1 changed file with 40 additions and 0 deletions.
40 changes: 40 additions & 0 deletions docs/topics/http/file-uploads.txt
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,46 @@ field in the model::
form = UploadFileForm()
return render(request, 'upload.html', {'form': form})

Uploading multiple files
------------------------

If you want to upload multiple files using one form field, set the ``multiple``
HTML attribute of field's widget:

.. snippet::
:filename: forms.py

from django import forms

class FileFieldForm(forms.Form):
file_field = forms.FileField(widget=forms.ClearableFileInput(attrs={'multiple': True}))

Then override the ``post`` method of your
:class:`~django.views.generic.edit.FormView` subclass to handle multiple file
uploads:

.. snippet::
:filename: views.py

from django.views.generic.edit import FormView
from .forms import FileFieldForm

class FileFieldView(FormView):
form_class = FileFieldForm
template_name = 'upload.html' # Replace with your template.
success_url = '...' # Replace with your URL or reverse().

def post(self, request, *args, **kwargs):
form_class = self.get_form_class()
form = self.get_form(form_class)
files = request.FILES.getlist('file_field')
if form.is_valid():
for f in files:
... # Do something with each file.
return self.form_valid(form)
else:
return self.form_invalid(form)

Upload Handlers
===============

Expand Down

0 comments on commit 7407440

Please sign in to comment.