python - '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
解决方案
form.changed_data返回已更改的字段名称列表。您可以改用form.cleaned_data
推荐阅读
- python - Python数组填充优化
- java - 我们如何创建一个算法来检查一个字符串是否是两个合并字符串的结果?
- c - 如何删除字符串中的第一个零?(不使用atoi)
- asp.net-mvc - 如何在 ASP.NET MVC 视图中显示图像?
- java - 新线程的 thread.start() 方法是否立即返回到当前线程?
- ios - 不知何故,我在我的应用程序中丢失了推送通知。我想不通
- c - 得到分段错误。Valgrind (CS50 PSET5 Speller) 上大小为 1 的无效内存写入
- modelica - 何时在 Modelica 语言中使用 noEvent 运算符?
- python - ASCII 期望范围循环
- c# - 将窗体对象添加到绘图