Type Error /login authenticate() takes from 0 to 1 positional arguments but 2 were given

Viewed 457
def loginUser(request):
    if request.method == "POST":
        username = request.POST.get('username')
        password = request.POST.get('pass1')
        user = authenticate(username, password)

        if user is not None:
            login(request, user)
            return redirect( '/')

        else:
            messages.error(request, "Either your email or password is wrong!")
            return render(request, 'loginpage.html')
    return render(request, 'loginpage.html')

Whenever I enter the credentials on the login page this error appears, my login function is also named loginUser yet

2 Answers

You need to pass the credentials as named parameters:

if request.method == 'POST':
    username = request.POST.get('username')
    password = request.POST.get('pass1')
    user = authenticate(username=username, password=password)
    # …

authenticate accept **kwargs parameters only

Related