表单对象没有属性 'cleaned_data
我正在尝试使用Django文档生成一个表单。可是我一直遇到这个错误:
'TestForm' object has no attribute 'cleaned_data'
尽管form.is_valid
返回True
(我代码里打印了“表单有效”的信息)。以下是我代码中相关的部分。
urls.py
url(r'^test/',views.test),
forms.py
from django import forms
class TestForm(forms.Form):
name = forms.CharField()
views.py
def test(request):
if request.method == 'POST':
form = TestForm(request.POST)
if form.is_valid:
print 'form is valid'
print form.cleaned_data
else:
print 'form not valid'
else:
form = TestForm()
return render_to_response('User/Test.html',{'form': form},context_instance=RequestContext(request))
Test.html
<form action="" method="post">{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Submit">
</form>
1 个回答
52
你没有触发表单的清理和验证,这个过程是通过调用 is_valid()
方法来完成的(注意后面的括号 ()
),所以你没有得到清理过的数据。
修改建议:
if request.method == 'POST':
form = TestForm(request.POST)
if form.is_valid():
print 'form is valid'
print form.cleaned_data
...