Loading docs/topics/http/file-uploads.txt +40 −0 Original line number Diff line number Diff line Loading @@ -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 =============== Loading Loading
docs/topics/http/file-uploads.txt +40 −0 Original line number Diff line number Diff line Loading @@ -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 =============== Loading