django 1.8.13'用户'对象没有'用户'属性

时间:2016-07-30 01:39:00

标签: python django

我遇到了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})

2 个答案:

答案 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)