表单集有效,但表单没有属性cleaned_data!

pso*_*res 3 django django-templates django-forms

好的,我有一个有效的表单集。但给我一个错误,该表单没有属性cleaned_data..

老实说,我完全不知道发生了什么事..
我在终端上尝试了我的代码,它返回了一个空字典..没有错误..

形式:

class Clinical(forms.Form):
    _names = list(ClinicalForm.objects.values_list('form_id', 'form_name'))
    _names.append(("New", u'Nova entrada'))

    cliform_name = forms.ChoiceField(widget=RadioSelect(), choices=_names, label
         ="", required=True)
Run Code Online (Sandbox Code Playgroud)

意见:

ClinicalSet = formset_factory(Clinical, extra=2)

formset2 = ClinicalSet(request.POST)
if formset2.is_valid():
    choice1 = formset2.cleaned_data
    return render_to_response('valid_test.html', 
                                {
                                    'formset2': formset2,
                                    'wrongs1': wrongs1,
                                    'choice1': choice1 
                                    })
else:
    formset2 = ClinicalSet()
return render_to_response('valid_test.html', 
                            {
                                'formset2': formset2,
                                'wrongs1': wrongs1,
                                })    
Run Code Online (Sandbox Code Playgroud)

模板:

<form method="post" action="">
<div>
{{ formset2.management_form }}
    {% for form in formset2.forms %}
        {{ form }}
    {% endfor %} 
    <input type="submit" value="save" />
</div>
Run Code Online (Sandbox Code Playgroud)

如果我注释调用 clean_data 的行(choice1),我不会收到任何错误,并且能够看到表单。
如果我选​​择一些选项并取消注释该行,它就可以工作。

我有一个类似的表单集:需要选择表单集中的两个表单,并且这个有效。

有效的表单是第一个表单集(上面链接)。帖子参数:

form-0-pres_name    1
form-1-pres_name    2
form-INITIAL_FORMS  0
form-TOTAL_FORMS    2
Run Code Online (Sandbox Code Playgroud)

用户在每个表单中选择一个选项,然后他会重定向到另一个视图(此视图 - formset2)。

非常欢迎任何帮助..

Chr*_*att 6

formset_factory返回一个表单迭代器,即本质上是一个表单列表,它本身不是表单。cleaned_data仅在表单上可用,因此您必须迭代formset2

for form in formset2:
    form.cleaned_data # Here I am!
Run Code Online (Sandbox Code Playgroud)