Django множественная загрузка фотографий для каждой записи
Я хочу позволить пользователю загружать текст, описание и несколько изображений в одну запись. Но в настоящее время я создаю новую запись для каждой фотографии, вместо того, чтобы иметь несколько изображений для одной записи. Что мне нужно изменить. Спасибо.
models.py
class MultipleImage(models.Model):
title = models.CharField(max_length=200)
describtion = models.TextField(null=True, blank=True)
images = models.FileField()
forms.py
class CommentForm(forms.ModelForm):
class Meta:
model = MultipleImage
fields = ['title', 'describtion', 'images']
widgets = {
'images': forms.ClearableFileInput(attrs={'multiple': True}),
}
views.py
def upload(request):
form = CommentForm()
if request.method == "POST":
images = request.FILES.getlist('images')
for image in images:
MultipleImage.objects.create(images=image)
images = MultipleImage.objects.all()
return render(request, 'index.html', {'images': images, 'form':form})
index.html
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
{% for field in form %}
{{field}}
{% endfor %}
</form>
Вы можете создать две модели, одну для Product и другую для Image. В отношениях 1:N. Одна Product имеет n Image(s), а Image - для Product:
class Product(models.Model):
title = models.CharField(max_length=200)
describtion = models.TextField(null=True, blank=True)
class ProductImage(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
image = models.FileField()
По вашему мнению, необходимо создать несколько моделей (одну для продукта и от 0 до n для изображений)