Несколько полей для загрузки файлов в одной модели
Мне нужно что-то вроде этого:
В одной форме будет несколько полей загрузки файлов с возможностью мультизагрузки.
Я бы сделал это как одно поле, но мне нужно затем фильтровать его. Например:
Мне нужно отобразить на frontend все файлы1, а не файл1 - файл2 - файл3 вместе взятые.
Итак, мне нужна модель вроде этой (но работающая только для загрузки одного файла)
class TestModel(models.Model):
#info 1
exp_date = models.DateField(default=None, blank=True, null=True)
file1 = models.FileField(upload_to="1/", blank=True, null=True)#multi files
#info 2
member_number = models.CharField(max_length=50, default=None)
file2 = models.FileField(upload_to="1/", blank=True, null=True)#multi files
#info 3
member_exp_date = models.CharField(max_length=50, default=None)
file3 = models.FileField(upload_to="1/", blank=True, null=True)#multi files
Но он должен иметь несколько загрузок файлов в каждом поле "file upload", поэтому я должен создать другую модель, подобную этой, для каждого поля файла
class FilesOne(models.Model):
file = models.FileField(upload_to="%Y-%m-%d/", blank=True, null=True)
files_key = models.ForeignKey('TestModel', on_delete=models.CASCADE,
default=None, null=True)
class FilesTwo(models.Model):
file = models.FileField(upload_to="%Y-%m-%d/", blank=True, null=True)
files_key = models.ForeignKey('TestModel', on_delete=models.CASCADE,
default=None, null=True)
...
и в представлениях сделать цикл for и выполнить "create-objects" 'file-number' Times для каждого поля следующим образом:
add_files = request.FILES.getlist("file")
for i in add_files :
FilesOne.objects.create(files_key=user.driver, file=i)
Итак, есть ли какое-нибудь хорошее решение, чтобы это произошло?