我收到以下行的錯誤:username = login_form.cleaned_data('username'),因為在某個地方它似乎是一個字典,但我無法理解為什么。誰能告訴我,問題是什么?views.pydef index(request): return render(request, 'web/base.html')def register_view(request): register_form = UserCreationForm() if request.method == "POST": register_form = UserCreationForm(request.POST) if register_form.is_valid(): register_form.save() username = register_form.cleaned_data("username") password = register_form.cleaned_data("password1") user = authenticate(request, username=username, password=password) if user: login(request, user) return render(request, 'web/register.html', {'register_form': register_form})def login_view(request): login_form = AuthenticationForm() if request.method == 'POST': login_form = AuthenticationForm(data=request.POST) if login_form.is_valid(): username = login_form.cleaned_data('username') password = login_form.cleaned_data('password') user = authenticate(request, username=username, password=password) if user: login(request, user) return render(request, 'web/login.html', {'login_form': login_form})def logout_view(request): logout(request) return redirect(reverse('web:index'))
3 回答

慕容森
TA貢獻1853條經驗 獲得超18個贊
Form.cleaned_data
從設計上來說,它確實是一本字典。要獲取字典中鍵的值,請使用[ ]
,例如
username?=?register_form.cleaned_data["username"]

海綿寶寶撒
TA貢獻1809條經驗 獲得超8個贊
從字典中獲取值,例如:
username = login_form.cleaned_data['username'] password = login_form.cleaned_data['password']
您無法使用 () 而是使用 [] 來獲取 DICTIONARIES 中鍵的值。

森林海
TA貢獻2011條經驗 獲得超2個贊
login_form.cleaned_data
是一本字典,所以username = login_form.cleaned_data('username')
沒有意義,你應該使用:
username = login_form.cleaned_data['username'] password = login_form.cleaned_data['password']
因此,元素也會發生同樣的情況password
。
添加回答
舉報
0/150
提交
取消