Fix multiple files upload

This commit is contained in:
Alexandre Iooss 2023-08-05 13:42:28 +02:00
parent effb56ef1d
commit b00c2e07fd
2 changed files with 28 additions and 14 deletions

View file

@ -13,17 +13,34 @@ from django.utils.translation import gettext_lazy as _
from .models import Gallery, Tag
class MultipleFileInput(forms.ClearableFileInput):
allow_multiple_selected = True
class MultipleFileField(forms.FileField):
def __init__(self, *args, **kwargs):
kwargs.setdefault(
"widget",
MultipleFileInput(
attrs={
"accept": "image/*",
"class": "mb-3",
}
),
)
super().__init__(*args, **kwargs)
def clean(self, data, initial=None):
single_file_clean = super().clean
if isinstance(data, (list, tuple)):
result = [single_file_clean(d, initial) for d in data]
else:
result = single_file_clean(data, initial)
return result
class UploadForm(forms.Form):
file_field = forms.FileField(
label="",
widget=forms.FileInput(
attrs={
"accept": "image/*",
"multiple": True,
"class": "mb-3",
}
),
)
file_field = MultipleFileField(label="")
gallery = forms.ModelChoiceField(
Gallery.objects.all(),
label=_("Gallery"),