несколько файлов в форму джанги. Вот пример:
models.py:
class ProductPhoto(models.Model):
author = models.CharField(max_length=20)
image = models.ImageField(upload_to='./img/')
def __str__(self):
return str(self.image)
forms.py:
class ProductPhotoForm(forms.ModelForm):
class Meta:
model = ProductPhoto
fields = ('author', 'image',)
widgets = {
'author': forms.TextInput(attrs={'style': 'width:100px'}),
'image': forms.ClearableFileInput(attrs={'multiple': True})
}
views.py:
class ProductUpload(View):
def get(self, request):
form = ProductPhotoForm()
return render(request, 'upload.html', {'form': form})
def post(self, request):
bound_form = ProductPhotoForm(request.POST, request.FILES)
if bound_form.is_valid():
bound_form.save()
return render(request, 'upload.html', {'form': bound_form})
В html просто написал {{form}}
Я выбираю, например, 5 картинок, отправляю, ко мне приходит 5 картинок( проверил по request.FILES ) но так как видимо у меня в моделе указано
image = models.ImageField
то forms.py берет только первую картинку, а остальные не воспринимает и в бд у меня сохранятеся одна картинка. Может быть есть какой нибудь способ это починить? Какой нибудь MultiImageField или типо того?
как то справлялся с таким кейсом на постгрес + джанго, вроде вот это использовал, глянь. https://stackoverflow.com/questions/537593/multiple-images-per-model
Сделай o2m на модель с картинкой
Обсуждают сегодня