我正在尝试使用 Django 1.3 FormWizard 通过 2 个步骤上传文件: 1. 仅 FileField 2. 如果文件已正确上传且有效(经过自定义验证),请提供名称和描述。
根据文档,我写道:
class CreateCheckWizard(FormWizard):
def done(self, request, form_list):
return HttpResponseRedirect('/my_checks/')
def get_template(self, step):
return ['create_check_%s.html' % step, 'create_check_1.html']
class CreateCheckForm1(forms.Form):
my_file = forms.FileField()
class CreateCheckForm2(forms.Form):
title = forms.CharField(max_length=255)
我将 multipart/form-data 添加到模板中的 FORM 标记中:
<form enctype="multipart/form-data" action="." method="post">
但是,即使我上传文件,我也会收到错误“此字段为必填项”。
我猜该表单是在省略 request.FILES 字段的情况下创建的。我们如何改变这种行为以在 FormWizard 中成功上传文件?
编辑:查看 Django 源代码,它确实使用form(request.POST)
而不是form(request.POST, request.FILES)
像处理文件那样创建表单。有什么方法可以在不更改源代码的情况下上传文件?