1

我有一个返回空cleaned_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

5 回答 5

1

好的,我只是想完成这个话题,所以如果有人有同样的问题,他/她可以使用这个页面来解决这个解决方案的主要关键是:1-永远不要忘记加密类型 2-为不同的功能使用单独的表格

所以在模板中我应该使用:

<form method="POST" action="." encrypt="multipart/form-data">

并使用两种单独的表单来添加和删除文件,如下所示:这个用于添加文件:

<form method="POST" action="." encrypt="multipart/form-data" id="add_file">

而这个用于删除文件:

<form method="POST" action="." encrypt="multipart/form-data" id="delete_file">
于 2012-09-22T11:10:54.937 回答
1

当我忘记在is_valid. Formset.is_valid返回True,但没有清理数据只是因为is_valid()没有调用该函数来返回清理数据。

于 2017-05-10T16:47:29.467 回答
0

好的,我在使用一些断点后发现,这实际上是请求的错误,request.FILES 为空

于 2012-09-18T18:47:03.600 回答
0

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

... snip ... 

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

... snip ...

您似乎缺少表单集中的.forms部分。

于 2012-09-08T13:27:11.207 回答
0

tnx 对于您的所有答案,我已经解决了问题,我有一个具有两个功能的表单:将它们分开后 add_file 和 del_file,一切都很好,但是在我添加一些文件后查看页面时出现问题,像3个文件,然后request.POST发送,我再次返回页面我实际上看到三行文件输入,而不是一个它真的降低了美感有什么建议吗?

于 2012-09-22T08:05:27.520 回答