Browse Source

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

Berker Peksag 8 years ago
parent
commit
54febdb8be
1 changed files with 40 additions and 0 deletions
  1. 40 0
      docs/topics/http/file-uploads.txt

+ 40 - 0
docs/topics/http/file-uploads.txt

@@ -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
 ===============