Home > OS >  'bytes' object has no attribute '_committed'
'bytes' object has no attribute '_committed'

Time:01-19

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)
  •  Tags:  
  • Related