formset有效但返回空的cleaning_data字段

时间:2012-09-08 13:07:50

标签: django django-forms cleaned-data

我有一个返回空的cleaning_data的formset,即使formset有效。 我的观点是这样的:

def edit_files(request):
    file_formSet = formset_factory(FileUploadForm)
    if request.POST:
        formset = file_formSet(request.POST, request.FILES)
        if formset.is_valid():
            for form in formset:
                form_data = form.cleaned_data
                if form_data:
                    up_file = upload_file(form_data['file'])
    else:
        formset = file_formSet()

    return render_to_response('edit_files.html', {'formset': formset})

这是一个上传表单,有了这个问题,我无法保存文件 upload_file是我实现的方法之一,它运行正常,我已经测试过了。

4 个答案:

答案 0 :(得分:1)

当我忘记在 HIGH LAST PRICE LOW date 2017-05-04 HSBA LN Equity 672.500 663.800 661.100 UCG IM Equity 2.768 2.760 2.694 ISP IM Equity 16.020 15.970 15.490 2017-05-05 HSBA LN Equity 663.900 658.600 656.000 UCG IM Equity 2.868 2.842 2.770 ISP IM Equity 16.480 16.220 15.770 2017-05-08 HSBA LN Equity 664.100 660.600 658.900 UCG IM Equity 2.898 2.852 2.826 ISP IM Equity 16.490 16.010 15.940 2017-05-09 HSBA LN Equity 669.200 664.900 662.500 UCG IM Equity 2.898 2.848 2.842 ISP IM Equity 16.410 15.900 15.900 2017-05-10 HSBA LN Equity 673.400 670.900 663.800 UCG IM Equity 2.888 2.850 2.802 ISP IM Equity 16.150 16.090 15.590 之后添加括号()时,我遇到了同样的错误消息。 is_valid返回Formset.is_valid,但没有清理数据只是因为没有调用True函数来返回已清理的数据。

答案 1 :(得分:0)

我认为您需要更改以下行;

... snip ... 

for form in formset.forms:
    form_data = form.cleaned_data

... snip ...

您似乎缺少格式集中的.forms部分。

答案 2 :(得分:0)

确定 我发现在使用了一些断点之后,它实际上是请求的错,request.FILES是空的

答案 3 :(得分:0)

tnx为你所有的答案,我解决了这个问题, 我有一个有两个功能的表单:add_file和del_file 在我分开之后,每件事都没问题 但是在查看页面时出现问题 在我添加一些文件后,比如3个文件,然后request.POST发送,然后我再次返回页面 我实际上看到三行文件输入,而不是一行 它真的减少了美感 有什么建议吗?