【发布时间】:2012-03-09 12:52:46
【问题描述】:
我正在尝试使用 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) 创建表单,就像处理文件一样。
有什么方法可以在不修改源代码的情况下上传文件?
【问题讨论】:
标签: django file-upload formwizard django-formwizard