I will create multi image add page. But the following error occurs. Could your help me? I think mistake in views.py. I'm not sure.
Note : It's frustrating that Stackoverflow asks for a long explanation.
error:
AttributeError at /en/projects/multiimageadd/10/
'bytes' object has no attribute '_committed'
@login_required
@permission_required('is_superuser')
def MultiImageAdd(request, id):
blog = BlogModel.objects.filter(id=id).first()
if request.method == 'POST':
images = request.FILES['images']
for image in images:
Images.objects.create(project=project, image=image)
return redirect("home")
return render(request,"multiImage.html")
<div >
<div >
<div >
<div >
<div >
</div>
<div >
<form method="POST" action="" enctype="multipart/form-data"
novalidate="">
{% csrf_token %}
<div >
<div >
<div >
<label for="id_images" >Images:</label>
<span >
<input required type="file" name="images" id="id_images" multiple>
</span>
</div>
</div>
</div>
<div >
<button type="submit">Save</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
models.py
class Images(models.Model):
blog = models.ForeignKey(BlogModel, related_name='blogmodel', on_delete=models.CASCADE, blank=True,null=True)
image = models.ImageField(blank=False, null=True)
CodePudding user response:
You should enumerate over the file handlers, so obtain the handlers with .getlist(…) [Django-doc]:
images = request.FILES.getlist('images')
for image in images:
Images.objects.create(project=project, image=image) 