AttributeError at /login/

来源:9-2 通过django内置的login完成登录

这位同学很懒

2020-05-04

AttributeError at /login/
'tuple' object has no attribute 'get'
Request Method:	POST
Request URL:	http://127.0.0.1:8000/login/
Django Version:	2.2
Exception Type:	AttributeError
Exception Value:	
'tuple' object has no attribute 'get'
Traceback Switch to copy-and-paste view
/Users/cheshaowei/.virtualenvs/mxonline/lib/python3.7/site-packages/django/core/handlers/exception.py in inner
            response = get_response(request) …
▶ Local vars
/Users/cheshaowei/.virtualenvs/mxonline/lib/python3.7/site-packages/django/utils/deprecation.py in __call__
            response = self.process_response(request, response) …
▶ Local vars
/Users/cheshaowei/.virtualenvs/mxonline/lib/python3.7/site-packages/django/middleware/clickjacking.py in process_response
        if response.get('X-Frame-Options') is not None: …
▶ Local vars
Request information
USER
admin

GET
No GET data

POST
Variable	Value
username	
'admin'
password	
'admin'
csrfmiddlewaretoken	
'wOj9lnUIIAgl7woZn3pAqk224SSZq9STvscW5VZvSRYmLCV82rn7hYOgqMZ98tl2'
FILES
No FILES data
写回答

1回答

这位同学很懒

提问者

2020-05-04

在 retuen render 时后面括号打错


正确:

return render(request,"login.html",{"msg":"用户名或密码错误"})

class LoinView(View):
    def get(self, request, *args, **kwargs):
        return render(request,"login.html")

    def post(self, request, *args, **kwargs):
        user_name = request.POST.get("username","")
        passwoed = request.POST.get("password","")

        #通过用户名和密码查询用户是否存在
        user = authenticate(username=user_name, passwoed=passwoed)

        if user is not None:
            # user不为空,表示已经查询到用户
            login(request,user)
            # 登录成功之后,跳转
            return render(request,"index.html")
        else:
            #user为空,表示没有查询到用户
            return render(request,"login.html",{"msg":"用户名或密码错误"})


1
2
这位同学很懒
回复
bobby
嗯嗯,解决了。
2020-07-25
共2条回复

Django+ xadmin 开发在线教育网站

一套通用的技术组合拳,助你解决大部分Python类网站后端问题

1944 学习 · 2173 问题

查看课程