![](/img/trans.png)
[英]Python django 'QueryDict' object has no attribute 'subject'
[英]QueryDict Object has no attribute session Django
所以我基本上有一个登录表单,我定义如下:
def login_request(request):
if request.method == 'POST':
data = request.POST
auth_backend = AuthenticationBackend()
login_form = LoginForm(data)
if login_form.is_valid():
user = auth_backend.authenticate(data, password=data['password'], email=data['email'])
if user:
login(data, user)
# redirect to homepage
else:
login_form.add_error('password', "Password doesn't match email")
else:
data = {}
login_form = LoginForm()
return render(request, 'login.html', {'form': login_form, 'data': data})
如果给定的条件匹配,则用户必须登录。但是,当我这样做时
login(data, user)
我收到此错误:
Internal Server Error: /users/login/
Traceback (most recent call last):
File "C:\Users\Iyappan\PycharmProjects\pyDjangoTest\venv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\Iyappan\PycharmProjects\pyDjangoTest\venv\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Iyappan\PycharmProjects\pyDjangoTest\users\views.py", line 34, in login_request
login(data, user)
File "C:\Users\Iyappan\PycharmProjects\pyDjangoTest\venv\lib\site-packages\django\contrib\auth\__init__.py", line 99, in login
if SESSION_KEY in request.session:
AttributeError: 'QueryDict' object has no attribute 'session'
为什么会这样? 我怎样才能解决这个问题? 请帮助我,在此先感谢! 中间件:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
尝试改变这个:
if user:
login(data, user)
做了:
if user:
login(request, user)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.