首页 > 解决方案 > CustomUser 对象没有属性“方法”Django 3.0

问题描述

我正在使用 login() 和这个 import 制作登录视图from django.contrib.auth import authenticate, login。文档说登录需要两个参数,但是当我login(request, user)在做之后使用user = authenticate(username=username, password=raw_password)但它告诉我login()接受一个位置参数但得到 2。当我使用login(user)它时告诉我CustomUser object has no attribute 'method'

使用时出错login(request, user)

TypeError at /user_accounts/login

login() takes 1 positional argument but 2 were given

看法

def login(request):
    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)
            return redirect('home')
        else:
            messages.error(request,'username or password not correct')
            return redirect('login')
    else:
        return render(request, 'user_accounts/login.html')

模板

<!DOCTYPE html>
<html>

<head>
    <title>Login</title>
</head>

<body>
    <form method="POST">
        {% csrf_token %}
        <p>
            <label>Username</label>
            <input type="text" name="username">
        </p>
        <p>
            <label>Password</label>
            <input type="password" name="password">
        </p>
        <button type="submit">Login</button>
    </form>
</body>

</html>

网址

url(r'^user_accounts/login', account_views.login, name="login"),

标签: djangopython-3.xdjango-templatesdjango-views

解决方案


推荐阅读