django добавление нескольких экземпляров изображения модели с помощью формы - PullRequest
0 голосов
/ 26 мая 2020

Я хочу сохранить 400 изображений в моей модели изображения, используя одно поле файла, и я не знаю, как получить каждое изображение из формы и создать экземпляр в модели изображения

вот моя функция модели:

class Image(models.Model):
image = models.ImageField(null=True, blank=True)

и вот моя форма:

class AddImageForm(forms.ModelForm):
image = forms.FileField(widget=forms.FileInput(attrs={'class':'form-control','multiple':'true'}))
class Meta:
    model = Image
    fields = ['image']

и вот мое мнение, которое, как я знаю, неверно, просто чтобы убедиться, что я делюсь всем:

def imagesform(request):
form = AddImageForm()
if request.method == 'POST':
    if form.is_valid():
        for i in form['image']:
            Image.objects.create(image=i)


context = {'form':form}
return render(request, 'members/imagesform.html', context)

1 Ответ

0 голосов
/ 26 мая 2020

Загрузка нескольких файлов может быть сложной задачей, но вы почти готовы! Из того, что я вижу, единственное, чего не хватает, - это то, что вы должны создать экземпляр своей формы с аргументами request.POST и request.FILES:

def imagesform(request):

    if request.method == 'POST':
        form = AddImageForm(request.POST, request.FILES)
        if form.is_valid():
            for i in form['image']:
                Image(image=i).save()

    form = AddImageForm()
    context = {'form':form}
    return render(request, 'members/imagesform.html', context)

Кроме того, убедитесь, что вы добавили атрибут enctype="multipart/form-data" в ваш тег <form>.

...