我是django新手,正在尝试让用户身份验证正常工作。我已经设置了一个非常基本的登录表单和视图,但是我得到了一个错误:
AttributeError at /accounts/login/ 'User' object has no attribute 'user'
我很困惑,因为我没有试着接近用户.User
我知道它必须是第一个else语句中的内容,因为经过身份验证的用户只需重定向到“/”,因为它应该
以下是视图:
^{pr2}$
错误在中引发视图.py,第15行:如果request.user.is_认证():
Tags:
视图函数名为
login
,它接受一个参数request
。在在视图的第11行中,调用
login(user)
。现在,您可能是想让它成为django.contrib.auth
中的登录函数,并且假设您已经从视图的顶部导入了它。但是Python一次只能使用一个名称:因此,当您将视图命名为login
时,它会覆盖对该名称的现有引用。在这样做的结果是,该行调用您的视图,而不是login函数。(这就是为什么会出现这样的错误:视图的第一行检查},但是在您的例子中,您已经将
request.user
,从第一个参数(通常是请求)获取{user
作为第一个参数传递,当然user本身没有user param。)解决方案是将视图重命名为其他名称,或者在视图中执行
from django.contrib import auth
并调用auth.login(user)
。在登录必须有两个参数,请求和用户。如果未给出请求,登录无法设置cookies等,请执行以下操作:
https://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.login
相关问题 更多 >
编程相关推荐