在FormWizard中使用FileField(Django 1.3)

Tho*_*mas 1 django file-upload formwizard django-formwizard

我正在尝试使用Django 1.3 FormWizard上传一个包含两个步骤的文件: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)
Run Code Online (Sandbox Code Playgroud)

我将multipart/form-data添加到模板中的FORM标记: <form enctype="multipart/form-data" action="." method="post">

但是,即使我上传文件,也会收到错误"此字段是必填项".

我想创建的表单省略了request.FILES字段.我们如何更改该行为以成功上载FormWizard中的文件?

编辑:看看Django源代码,它确实创建了使用form(request.POST)而不是form(request.POST, request.FILES)像应该处理文件的表单.有没有更改源代码上传文件的方法?

Ala*_*air 5

这在Django 1.3表单向导中是不可能的.从Django表单向导文档:

重要限制:由于向导使用HTML隐藏字段在页面之间存储数据,因此除最后一个外,您可能不包含任何形式的FileField

可以使用Django 1.4表单向导(请参阅处理文件docs).如果您使用的是Django 1.3,则可以将新表单向导安装为单独的应用程序.