上传文件时表单无效

时间:2016-09-05 14:28:45

标签: django

我正在尝试使用django上传文件的基本示例。 我尝试了django documentaion中的代码,但我一直收到无效格式。当我不测试表单的验证并尝试直接处理文件时,我得到:

  

/ neurons / nblast处的MultiValueDictKeyError   “
  '文件'“

P.S: 以前,我使用过FileField的模型并设置了(upload_to),但在我目前的情况下我不需要使用模型,我只需要让用户上传他的文件。

这是我的代码:

模板

<body>    
<form action="" method="post">

    {{ form }}
    <br>
    <button class="btn btn-success" name="btn_upload">
        <span class="glyphicon glyphicon-upload"></span>
        <b>Upload</b>
    </button>

    {% csrf_token %}
</form>      
</body>

浏览

def test(request):
    if request.method == GET:
        form = UploadFileForm()

    if request.method == POST:
        if 'btn_upload' in request.POST:                
            form = UploadFileForm(request.POST, request.FILES)                
            if form.is_valid():                   
                handle_uploaded_file(request.FILES['file'])
            else:
                print 'Not Valid'

        form = UploadFileForm()

    return render_to_response('test.html',
                              {'form': form},
                              context_instance=RequestContext(request))

形式:

class UploadFileForm(forms.Form):
    file = forms.FileField()

非常感谢

2 个答案:

答案 0 :(得分:2)

您是否尝试过查看The Django 'File Uploads' docs,尤其是enctype="multipart/form-data"属性?

答案 1 :(得分:0)

u错过了这个enctype =“ multipart / form-data”