Fixed #26604 -- Added a multiple file upload example to topics/http/file-uploads.txt.

This commit is contained in:
Berker Peksag 2016-05-15 10:03:31 +03:00 committed by Tim Graham
parent bed2055506
commit 54febdb8be
1 changed files with 40 additions and 0 deletions

View File

@ -122,6 +122,46 @@ field in the model::
form = UploadFileForm() form = UploadFileForm()
return render(request, 'upload.html', {'form': form}) 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 Upload Handlers
=============== ===============