0

I am trying to build a web api for a login page. I keep getting this error. Although i have seen similar and related issues online, the solutions have been of help to me. What am i not doing right?

error

MultiValueDictKeyError at /login/
"u'username'"

login

@csrf_exempt
    def my_view(request):
         user = request.POST['username']
         passcode = request.POST['password']
         user = authenticate(request, username=user, password = passcode)
         if user is not None:
             login(request, user)
             return HttpResponse("User logged in")

         else:
             return HttpResponse("User not found")

updated login

@csrf_exempt
def my_view(request):
     if request.method == 'POST':
        user = request.POST['username']
        passcode = request.POST['password']
        user = authenticate(request, username=user, password = passcode)
        if user is not None:
            login(request, user)
            return HttpResponse("User logged in")

        else:
            return HttpResponse("User not found")

2 Answers2

0

Remove the request parameter from authenticate function,

user = authenticate (username=username, password=passcode)

Edit your view,

@csrf_exempt
def my_view(request):
     user = request.POST.get('username')
     password = request.POST.get('password')
     user = authenticate(username=username, password=password)
     if user is not None:
         login(request, user)
         return HttpResponse("User logged in")
     else:
         return HttpResponse("User not found")
zaidfazil
  • 9,017
  • 2
  • 24
  • 47
0

I just use the request.POST.get('your field_name here')

for example use username = request.POST.get('username') to pick your username

Murat Demir
  • 716
  • 7
  • 26
barna
  • 171
  • 7