def post(self, request): form = CreateProductForm(request.POST) formset = ImagesFormSet(request.POST, request.FILES, queryset=ProductImage.objects.none()) if form.is_valid() and formset.is_valid(): product = form.save() for form in formset.cleaned_data: image = form.get('image') if image is not None: pic = ProductImage(product=product, image=image) pic.save() return redirect(product.get_absolute_url()) else: print(form.errors, formset.errors)
def post(self, request, pk): product = get_object_or_404(Product, pk=pk) form = CreateProductForm(instance=product, data=request.POST) formset = ImagesFormSet(request.POST, request.FILES, queryset=product.images.all()) if form.is_valid() and formset.is_valid(): product = form.save() print(formset.deleted_forms) for form in formset.cleaned_data: image = form.get('image') if image is not None and not ProductImage.objects.filter(product=product, image=image).exists(): pic = ProductImage(product=product, image=image) pic.save() for form in formset.deleted_forms: print(form.cleaned_data) image = form.cleaned_data.get('id') if image is not None: image.delete() return redirect(product.get_absolute_url()) else: print(form.errors, formset.errors)