Question: i am new in Django. i am having issue in updating ImageField.i have following code  in models.py   class ImageModel(models.Model): image_name = models.CharField(max_length=50) image_color = models.CharField(max_length=50) image_document = models.ImageField(upload_to='product/')  -This is My forms.py  class ImageForm(forms.ModelForm): class Meta: model = ImageModel fields = ['image_name', 'image_color' , 'image_document']  in Html file (editproduct.html) <form method="POST" action="/myapp/updateimage/{{ singleimagedata.id }}"> {% csrf_token %} <input class="form-control" type="text" name="image_name" value="{{ singleimagedata.image_name}}"> <input class="form-control" type="file" name="image_document"> <button type="submit" class="btn btn-primary">UPDATE PRODUCT</button> </form>  -myapp is my application name. {{singleimagedata}} is a Variable Containing all fetched Data -urls.py urlpatterns = [ path('productlist', views.productlist, name='productlist'), path('addproduct', views.addproduct, name='addproduct'), path('editimage/<int:id>', views.editimage, name='editimage'), path('updateimage/<int:id>', views.updateimage, name='updateimage'), ]  and Here is My views.py def productlist(request): if request.method == 'GET': imagedata = ImageModel.objects.all() return render(request,"product/productlist.html",{'imagedata':imagedata}) def addproduct(request): if request.method == 'POST': form = ImageForm(request.POST, request.FILES) if form.is_valid(): form.save() messages.add_message(request, messages.SUCCESS, 'Image Uploaded') return redirect('/myapp/productlist') else: imageform = ImageForm() return render(request, "product/addproduct.html", {'imageform': imageform}) def editimage(request, id): singleimagedata = ImageModel.objects.get(id=id) return render(request, 'product/editproduct.html', {'singleimagedata': singleimagedata}) def updateimage(request, id): #this function is called when update data data = ImageModel.objects.get(id=id) form = ImageForm(request.POST,request.FILES,instance = data) if form.is_valid(): form.save() return redirect("/myapp/productlist") else: return render(request, 'demo/editproduct.html', {'singleimagedata': data})   My image Upload is working fine.i can not Update image while updating data.rest of the data are updated.i don't know how to update image and how to remove old image and put new image into directory. 

Answer: I think you missed the enctype="multipart/form-data", try to change: <form method="POST" action="/myapp/updateimage/{{ singleimagedata.id }}">  into; <form method="POST" enctype="multipart/form-data" action="{% url 'updateimage' id=singleimagedata.id %}">   Don't miss also to add the image_color field to your html input.  Because, in your case the image_color field model is designed as required field.  To remove & update the old image file from directory; import os from django.conf import settings # your imported module... def updateimage(request, id): #this function is called when update data old_image = ImageModel.objects.get(id=id) form = ImageForm(request.POST, request.FILES, instance=old_image) if form.is_valid(): # deleting old uploaded image. image_path = old_image.image_document.path if os.path.exists(image_path): os.remove(image_path) # the `form.save` will also update your newest image & path. form.save() return redirect("/myapp/productlist") else: context = {'singleimagedata': old_image, 'form': form} return render(request, 'demo/editproduct.html', context)