Multivaluedict key error wventhough i have set name to input field

I have made a form and set method=post and while taking request.post['name'] to a variable MultiValueDictKeyError is Coming why is that ?

 <form action="verify_user" method="post">
        {% csrf_token %}
        <input required type="text" placeholder="Name" name="name"><br><br>
        <input required type="password" placeholder="Password" name="password"><br><br>
      <input required type="passord" placeholder="Confirm password" name="confirm_password" id="">  <br><br>

        <br><br><h1>{{ messages }}</h1>
        <button type="submit">Create</button>
  </form>

this is my form ------

def verify_user(request):
    inputname = request.POST['name']
    inputpass = request.POST['password']
    inputconfirmpass = request.POST['confirm_password']

    if not inputpass == inputconfirmpass:
        messages.info(request,"Passwords don't match")
    else:
        messages.info(request,"Passwords  match")

    return redirect('/verify_user')

this is my function in views.py -------------

MultiValueDictKeyError at /verify_user
  'name'
Request Method: GET
Request URL:    http://127.0.0.1:8000/verify_user
Django Version: 4.1.2
Exception Type: MultiValueDictKeyError
Exception Value:    'name'

this is the error --------

Try to provide another name as name for e.g. person_name something like that, also I'd recommend you to use .get() so that you can also provide some other default value.

views.py:

def verify_user(request):
    if request.method=="POST":
        inputname = request.POST.get('person_name', False)
        inputpass = request.POST.get('password', False)
        inputconfirmpass = request.POST.get('confirm_password', False)

        if not inputpass == inputconfirmpass: 
   
            messages.info(request,"Passwords don't match")
        else:        
             messages.info(request,"Passwords  match")

        return redirect('/verify_user')
    else: # GET request
        return render(request, "some_folder_name/your_template.html")

Template file:

<form method="POST">
        {% csrf_token %}
        <input required type="text" placeholder="Name" name="person_name"><br><br>
        <input required type="password" placeholder="Password" name="password"><br><br>
      <input required type="passord" placeholder="Confirm password" name="confirm_password" id="">  <br><br>

        <br><br><h1>{{ messages }}</h1>
        <button type="submit">Create</button>
  </form>
Back to Top