首页 > 解决方案 > Python Django request.GET.get('usernname') 总是返回 'None'

问题描述

视图.py

def login(request):
    context = {
        "login_view": "active"
    }
    if request.method == "POST":
        username = request.GET.get('username')
        password = request.GET.get('password')
        print(f"username  ===== {username}")
        print(f"password  ===== {password}")

        user = auth.authenticate(username = username, password = password)
        if user is not None:
            auth.login(request, user)
            messages.success("you are successfully logged in")
            return redirect('dashboard')
        else:
            messages.error(request, "Invalid credentials")
            return redirect('login')
    else:
        return render(request, 'accounts/login.html', context)

标签: djangopostrequest

解决方案


您需要将 GET 更改为 POST。例子:

if request.method == "POST":
    username = request.POST['username']
    password = request.POST['password']

    user = authenticate(request, username=username, password=password)
    if user is not None:
        login(request, user)
        # Redirect to a success page.
        ...
    else:
        # Return an 'invalid login' error message.
        ...

推荐阅读