位于/accounts/login/'User'对象的AttributeError没有属性“User”

2024-05-19 18:19:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我是django新手,正在尝试让用户身份验证正常工作。我已经设置了一个非常基本的登录表单和视图,但是我得到了一个错误:

AttributeError at /accounts/login/ 'User' object has no attribute 'user'

我很困惑,因为我没有试着接近用户.User
我知道它必须是第一个else语句中的内容,因为经过身份验证的用户只需重定向到“/”,因为它应该
以下是视图:

^{pr2}$

错误在中引发视图.py,第15行:如果request.user.is_认证():


Tags: django用户身份验证视图表单object错误login
2条回答

视图函数名为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等,请执行以下操作:

login(request, user)

https://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.login

相关问题 更多 >