首页 > 解决方案 > 'list' 对象没有属性 'get' 打印问题

问题描述

我无法在表单操作中使用 get 方法,并且出现错误,因为它出现在标题中。

表格.py

class LoginForms(forms.Form):
username = forms.CharField(max_length=50,label="Kullanıcı Adınız")
password = forms.CharField(label = "Şifreniz", widget = forms.PasswordInput)

视图.py

def loginUser(request):

form = LoginForms(request.POST or None)

context = {
    "form":form
}
if form.is_valid():
    username = form.changed_data.get("username")
    password = form.changed_data.get("password")

    user = authenticate(username = username, password = password)
    if user is None:
        messages.info(request,"Kullanıcı Adı Yada Şifre Hatalı")
        return render(request,"login.html",context)

    messages.success(request,"Başarıyla Giriş Yaptınız!")
    login(request,user)
    return redirect(request,"index")

return render(request, "login.html", context)

错误:

Error;
AttributeError at /user/login/

'list' object has no attribute 'get'

Request Method: POST

Request URL:    http://127.0.0.1:8000/user/login/

Django Version: 3.1.3

Exception Type: AttributeError

Exception Value:    

'list' object has no attribute 'get'

Exception Location: C:\Users\pc\Desktop\blog\user\views.py, line 46, in loginUser

Python Executable:  C:\Anaconda3\python.exe

Python Version: 3.8.3

Python Path:    

['C:\\Users\\pc\\Desktop\\blog',
 'C:\\Anaconda3\\python38.zip',
 'C:\\Anaconda3\\DLLs',
 'C:\\Anaconda3\\lib',
 'C:\\Anaconda3',
 'C:\\Anaconda3\\lib\\site-packages',
 'C:\\Anaconda3\\lib\\site-packages\\win32',
 'C:\\Anaconda3\\lib\\site-packages\\win32\\lib',
 'C:\\Anaconda3\\lib\\site-packages\\Pythonwin']

Server time:    Fri, 27 Nov 2020 02:46:07 +0300

标签: pythondjango

解决方案


form.changed_data返回已更改的字段名称列表。您可以改用form.cleaned_data


推荐阅读