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 для изображений)

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