Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CustomUser对象没有属性';方法';Django 3.0_Django_Python 3.x_Django Templates_Django Views - Fatal编程技术网

CustomUser对象没有属性';方法';Django 3.0

CustomUser对象没有属性';方法';Django 3.0,django,python-3.x,django-templates,django-views,Django,Python 3.x,Django Templates,Django Views,我正在从django.contrib.auth导入authenticate,login中使用login()创建登录视图。文档中说登录需要两个参数,但当我在执行user=authenticate(username=username,password=raw\u password)之后使用login(请求,用户)时,它告诉我login()需要一个位置参数,但得到了2个。当我使用login(user)时,它告诉我CustomUser对象没有属性“method” 使用登录时出错(请求,用户) 看法 模板

我正在从django.contrib.auth导入authenticate,login中使用login()创建登录视图。文档中说登录需要两个参数,但当我在执行
user=authenticate(username=username,password=raw\u password)
之后使用
login(请求,用户)
时,它告诉我
login()
需要一个位置参数,但得到了2个。当我使用
login(user)
时,它告诉我
CustomUser对象没有属性“method”

使用
登录时出错(请求,用户)

看法

模板

<!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>

您已经调用了视图
login
,该视图隐藏了您导入的登录函数。换个说法吧,这很有效,谢谢。我真的应该意识到这一点。再次感谢你
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"),