Skip to main content
 首页 » 编程设计

python之“方法”对象未找到 django 类型错误

2025年05月04日29落叶无声

我正在做一个 Django 项目,出现了以下错误

TypeError at /log_in/ 
'method' object is not subscriptable 
Request Method: POST 
Request URL:    http://127.0.0.1:8000/log_in/ 
Django Version: 1.8.4 
Exception Type: TypeError 
Exception Value:     
'method' object is not subscriptable 
Exception Location: D:\pfd\recom\views.py in log_in, line 95 
Python Executable:  C:\Python34\python.exe 
Python Version: 3.4.3 
Python Path:     
['D:\\pfd', 
 'C:\\Python34\\lib\\site-packages\\virtualenv-13.1.2-py3.4.egg', 
 'C:\\Windows\\SYSTEM32\\python34.zip', 
 'C:\\Python34\\DLLs', 
 'C:\\Python34\\lib', 
 'C:\\Python34', 
 'C:\\Python34\\lib\\site-packages'] 
Server time:    Thu, 1 Oct 2015 22:34:00 +0530 

下面是我的登录定义

def log_in(request): 
    context = RequestContext(request) 
    if request.method == 'POST': 
        username = request.POST.get['username',''] 
        password = request.POST.get['password',''] 
        user = auth.authenticate(username=username, password=password) 
 
    if user is not None: 
        if user.is_active: 
            auth.login(request,user) 
            return HttpResponseRedirect('/loggedin/') 
        else: 
            return HttpResponse("Inactive user.") 
    else: 
        return HttpResponseRedirect('error.html') 
 
return render_to_response('error.html') 

不明白哪里出了问题。

将 request.method 更改为 request.POST。删除上下文时,不会检测到帖子,只会执行最后一条语句。

当试图删除 request.method 时,同样的错误出现了。请帮助...

请您参考如下方法:

您的问题出在这些代码行中:

    username = request.POST.get['username',''] 
    password = request.POST.get['password',''] 

应该是

    username = request.POST.get('username','') 
    password = request.POST.get('password','') 

或者,甚至

    username = request.POST['username'] 
    password = request.POST['password'] 

请注意,如果键不存在,使用第二种语法会引发异常。