如何解决在此django文件上传表单中,我在做错什么吗?
| 这是我的表格:from django import forms
class UploadFileForm(forms.Form):
titl = forms.CharField(max_length=50)
ffile = forms.FileField()
这是我的views.py文件:
def handle_uploaded_file(file_path):
print \"handle_uploaded_file\"
dest = open(file_path.name,\"wb\")
for chunk in file_path.chunks():
dest.write(chunk)
dest.close()
def handle_upload(request):
c = {}
c.update(csrf(request))
if request.method == \"POST\":
form = UploadFileForm(request.POST)
if form.is_valid():
handle_uploaded_file(request.FILES[\"ffile\"])
return HttpResponseRedirect(\"/thanks\")
else:
form = UploadFileForm()
c.update({\"form\":form})
return render_to_response(\"upload.html\",c)
这是upload.html的内容:
<form enctype=\"multipart/form-data\" method=\"post\" action=\"/handle_upload/\">
{% csrf_token %}
{{ form.as_p }}
<input type=\"submit\" value=\"Upload it\"/>
</form>
每当我尝试提交表单时,对于ffile
字段,都会收到\“此字段为必填\”。我究竟做错了什么?只需提一下,我每次都上传一个文件。
解决方法
form = UploadFileForm(request.POST,request.FILES)
, 仅供将来参考。尽管在表单初始化中包含了“ 5”,但我也遇到了同样的错误。问题出在模板中:我忘了在<form>
标记中添加enctype=\"multipart/form-data\"
属性。
, 如果包含request.FILES
并添加了enctype=\"multipart/form-data\"
,但是仍然看到此错误,则可能是您未正确声明<input>
。
例如,如果在模板中显式声明输入html,例如:
<input type=\"file\" value=\"Upload CSV File\" />
您可能没有传递输入表单元素的预期输入ID或名称属性。
确保您的模板使用的是表单元素标签,即{{ form.file }}
,
django将在页面上显示为:<input id=\"id_file\" name=\"file\" type=\"file\" required=\"\">
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。