Я хочу загрузить несколько файлов с помощью форм Django и сохранить путь к загруженным файлам в таблицу базы данных. Но всякий раз, когда я использую этот метод для загрузки файлов, данные сохраняются в базе данных, но в таблице базы данных создаются разные строки для каждого файла множественной загрузки.
Я попробовал следующий метод
Несколько файлов загружено через другие_файлы
forms.py
from django import forms
from categories.models import Categories
from .models import Process
class ProcessingForm(forms.ModelForm):
files = forms.ModelChoiceField(queryset=Categories.objects.all())
class Meta:
model = Process
fields = ('category', 'files', 'lookup_files', 'other_files')
models.py
from django.db import models
class Process(models.Model):
category = models.CharField(max_length=25, choices=CATEGORIES, null=True,
blank=True)
files = models.CharField(max_length=50, null=True, blank=True)
lookup_files = models.FileField(upload_to='processing/%Y/%m/%d/Lookup',
verbose_name=('Lookup File [For Tagging]'), validators=
[validate_file_extension])
other_files =models.FileField(upload_to='processing/%Y/%m/%d/other_files',
null=True, blank=True)
views.py
from django.shortcuts import render, redirect
from categories.models import Categories
from django.contrib import messages
from .models import Process
def process(request):
if request.method == 'POST':
form = ProcessingForm(request.POST, request.FILES)
# print(form)
if form.is_valid():
category = form.cleaned_data['category']
files = form.cleaned_data['files']
lookup_files = request.FILES['lookup_files']
other_files = request.FILES.getlist('other_files')
print(len(other_files))
# file_list = []
for oth in other_files:
print(oth)
# file_list.append(oth)
form = Process(category=category, files=files,
lookup_files=lookup_files, other_files=oth)
form.save()
messages.success(request, 'File uploaded succcessfully')
return redirect('process')
else:
print("Form is not valid")
messages.warning(request, 'File extension is not valid')
return redirect('process')
else:
form = ProcessingForm()
return render(request, 'process/process.html', {'form':form})
Нужны все эти строки в один ряд ![enter image description here](https://i.stack.imgur.com/05lJW.png)