我遇到了Login()方法的问题,如果变量'user'包含用户但该方法失败了。可以帮助发现问题。
from django.contrib.auth import authenticate, login
def login(request):
if request.user.is_authenticated():
return render(request, 'Default.html')
mensaje = ''
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
User = authenticate(username=username, password=password)
if User is not None:
if User.is_active:
login(User)
return render(request, 'Default.html')
else:
return render(request, 'accounts/login.html', {'mensaje':mensaje})
else:
return render(request, 'accounts/login.html', {'mensaje':mensaje})
答案 0 :(得分:1)
您正在从django.contrib.auth导入登录,但请查看下一行代码。
from django.contrib.auth import authenticate, login
def login(request):
if request.user.is_authenticated():
return render(request, 'Default.html')
是的,您正在使用自己的登录方法隐藏该登录方法。解决方案是重命名自己的功能
def my_login(request):
if request.user.is_authenticated():
return render(request, 'Default.html')
答案 1 :(得分:0)
此外,根据文档,login()
函数需要传入2个参数 - 请求实例和用户模型实例:
login(request, User)