CRUD-функционал для загрузки нескольких изображений в Django с двумя формами
Я хочу позволить пользователю загружать несколько изображений для каждого продукта, как в приложении электронной коммерции. Поэтому я создал две модели. В forms.py я добавил ImageField в ProductForm. Мой вид create_product
вроде бы работает, но я не очень понимаю, как мне создать вид обновления и удаления. Спасибо!
models.py
class Product(models.Model):
owner = models.ForeignKey(Profile, null=True, blank=True, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
describtion = models.TextField(null=True, blank=True)
id = models.UUIDField(default=uuid.uuid4, unique=True, primary_key=True, editable=False)
class ProductImage(models.Model):
project = models.ForeignKey(Product, on_delete=models.CASCADE)
image = models.FileField()
forms.py
class ProductForm(ModelForm):
image = forms.ImageField(widget=ClearableFileInput(attrs={'multiple':True}))
class Meta:
model = Product
fields = ['title', 'describtion']
views.py
def create_product(request):
form = ProductForm()
profile = request.user.profile
if request.method == 'POST':
form = ProductForm(request.POST)
images = request.FILES.getlist('image')
if form.is_valid():
project = form.save(commit=False)
project.owner = profile
project.save()
for i in images:
ProductImage.objects.create(project=project, image=i)
context = {'form':form}
return render(request, 'projects/project_form.html', context)