Несколько полей для загрузки файлов в одной модели

Мне нужно что-то вроде этого:

В одной форме будет несколько полей загрузки файлов с возможностью мультизагрузки.

Я бы сделал это как одно поле, но мне нужно затем фильтровать его. Например:

Мне нужно отобразить на 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)

Итак, есть ли какое-нибудь хорошее решение, чтобы это произошло?

Вернуться на верх