保存表单集文件字段失败
我在尝试在一个表单集合中保存一个文件字段,但调试时出现了错误,提示'UploadPdfFormSet'对象没有'save'这个属性。我觉得关于在表单集合中处理文件的文档说明不够清楚。有没有人能帮我一下?
forms.py
from django import forms
class UploadPdf(forms.Form):
docfiles = forms.FileField(label='Browse')
class UploadPdfUrl(forms.Form):
docurl = forms.URLField(label='Address')
views.py
def upload(request):
UploadPdfFormSet = formset_factory(UploadPdf)
if request.method == 'POST':
formsetFile = UploadPdfFormSet(request.POST, request.FILES)
if formsetFile.is_valid():
instances = formsetFile.save
for form in instances:
form.save()
return HttpResponse('yey')
else:
formsetFile = UploadPdfFormSet()
formURL = UploadPdfUrl
return render(request, 'pdfchecker/index.html', {
'formsetFile': formsetFile, 'formURL': formURL,
})
UPDATE: New view.py file which successfully saves file:
def upload(request):
UploadPdfFormSet = formset_factory(UploadPdf)
handleUploadPdfFormSet = modelformset_factory(handle_UploadPdf)
if request.method == 'POST':
formsetFile = UploadPdfFormSet(request.POST, request.FILES)
formsetHandle = handleUploadPdfFormSet(request.POST, request.FILES)
if formsetFile.is_valid():
formsetHandle.save()
return HttpResponse('yey')
else:
formsetFile = UploadPdfFormSet()
formURL = UploadPdfUrl
return render(request, 'pdfchecker/index.html', {
'formsetFile': formsetFile, 'formURL': formURL,
})
1 个回答
0
看起来你提到的是文档中的这个例子。不过这个例子主要讲的是ModelFormsets,而不是你正在使用的普通表单集。所以这里的保存方法不太适用。
- 你可以使用ModelFormsets(当然前提是你的应用里有和UploadPdf表单对应的模型)
- (更有可能的是)手动处理表单集的cleaned_data。就像在这个例子中那样。