使用Django上传文件:无效的表单

时间:2011-07-19 19:38:33

标签: file-upload django-forms django-views

第一次发帖提问。我基本上复制了我在这里和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也有点新意,所以如果这只是一个愚蠢的错误,我道歉。 提前谢谢!

1 个答案:

答案 0 :(得分:1)

对此并不完全确定,但我猜是因为您已在UploadFileForm类的定义中为表单字段filetitle命名,因此您的name属性html中的表单字段必须与之匹配,即文件上载字段必须命名为“file”,并且还必须有“title”字段。

我建议您查看https://docs.djangoproject.com/en/dev/topics/forms/,其中有关于如何自动或半自动呈现表单的示例。使用自动渲染表单后,您可以根据需要对其进行自定义。