'upload image in forms Django

I am trying to upload image from form but whenever I submit everything got saved in database other than image field.But when I try to do samething from admin panel it works.
models.py

class Post(models.Model):
    title = models.CharField(("Title"), max_length=100)
    title_image = models.ImageField(
        ("Title Image"), 
        upload_to='static/Images/TitleImages/',
         max_length=None,
         blank = True,null = True)

Forms.py

class AddPostForm(ModelForm):
    class Meta:
        model = Post
        fields = ['title','title_image']

Views.py

class AddPostView(LoginRequiredMixin,CreateView):
    model = Post
    template_name = 'MainSite/add_post.html'
    fields = '__all__'

    def dispatch(self, request, *args, **kwargs):
        if request.user.is_anonymous:
            messages.error(request,"You need to login to access this page")
            return redirect('/')
        elif request.user.is_superuser:
            if request.method == "POST":
                form = AddPostForm(request.POST)
                if form.is_valid():
                    form.save()
                    messages.success(request,"POST added successfully")
                    return redirect('/')
                else:
                    print("error")
            else:
                print("method is not post")
            form = AddPostForm()        
            return render(request,'MainSite/add_post.html',{'form':form})
        else :
            messages.error(request,"You need to have superuser permission to access this page")
            return redirect('/')

addpost.html

<form action= "" method="POST" enctype="multipart/form-data"> 
    {% csrf_token %}

                      {{ form.media }}
                            {{ form|crispy}}
                    
                  <button class="btn btn-primary profile-button" style = "width:150px;"type="submit" >Add Post</button></div>

  </form>

my model have 2 things title and title_image but whenever I submit only title is saved and when I do through admin panel it works. I dont know what I am doing wrong here any advice will be helpful.
Thanks in advance



Solution 1:[1]

You've to pass request.FILES in order to save files

if request.method == "POST":
   form = AddPostForm(request.POST, request.FILES)
   if form.is_valid():
      form.save()
      messages.success(request,"POST added successfully")
      return redirect('/')

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Ankit Tiwari