第一次发帖提问。我基本上复制了我在这里和django文档网站上找到的所有东西,我无法弄清楚我做错了什么
以下是我的views.py文件中的代码
from django import forms
class UploadFileForm(forms.Form):
title = forms.CharField(max_length=50)
file = forms.FileField()
def upload_file(request):
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
response = "Form is valid."
else:
response = "Failed to upload attachment."
return HttpResponse(response)
我的html文件:
<form name="attachmentForm" action="http://mysite.com/uploadattachments" enctype="multipart/form-data" method="post">
<p>
Please specify a file, or a set of files:<br/>
<input id="attachment" type="file" name="datafile" size="40"/>
</p>
<input type="submit" value="Send"/>
</form>
当我测试它时,我得到“无法上传附件”。我有什么明显的遗失吗?我对django也有点新意,所以如果这只是一个愚蠢的错误,我道歉。 提前谢谢!
答案 0 :(得分:1)
对此并不完全确定,但我猜是因为您已在UploadFileForm类的定义中为表单字段file
和title
命名,因此您的name
属性html中的表单字段必须与之匹配,即文件上载字段必须命名为“file”,并且还必须有“title”字段。
我建议您查看https://docs.djangoproject.com/en/dev/topics/forms/,其中有关于如何自动或半自动呈现表单的示例。使用自动渲染表单后,您可以根据需要对其进行自定义。