表单对象没有属性 'cleaned_data

16 投票
1 回答
35455 浏览
提问于 2025-04-17 06:06

我正在尝试使用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
    ...

撰写回答