CustomUser对象没有属性';方法';Django 3.0
我正在从django.contrib.auth导入authenticate,login中使用login()创建登录视图。文档中说登录需要两个参数,但当我在执行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” 使用登录时出错(请求,用户) 看法 模板
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"),