我是Django的新手,正在尝试创建允许用户上传文件的表单。我使用的代码与djangoproject教程中的代码几乎相同,但是没有用。我的代码如下:

查看:


from django import forms

from django.shortcuts import render_to_response

from django.http import HttpResponseRedirect


def upload_file(request):
    if request.method == 'POST':

        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            handle_uploaded_file(request.FILES['file'])
            return HttpResponseRedirect('/')
    else:
        form = UploadFileForm()
    return render_to_response('upload_file.html', {'form': form})

def handle_uploaded_file(f):
    destination = open('home/dutzy/Desktop/mysite/name.txt', 'wb+')
    for chunk in f.chunks():
        destination.write(chunk)
    destination.close()


楷模:

从django.db导入模型

from django import forms

class UploadFileForm(forms.Form):
    title = forms.CharField(max_length=50)
    file  = forms.FileField()


和模板:upload_file.html

<form enctype="multipart/form-data" method="post" action="/upload_file/">
    <table>
        <tr>
            <td>
                <b> {{ form.file.label_tag }}</b>  {{ form.file}}
            </td>
        </tr>
        <tr>
            <td>
                <input type="hidden" value="title" name="title" id="title" />
                <input type="submit" value="Save" id="Save"/>
            </td>
        </tr>
     </table>
</form>


我正在django开发服务器上测试我的代码。错误是:未定义全局名称'UploadFileForm',尽管我怀疑还有其他问题。
我已经将urls.py配置为:
(r'^upload/$', 'mysite.upload.views.upload_file')

有人可以看看我的代码,并指出正确的方向吗?

谢谢

最佳答案

确保您的表单遵循以下规则http://docs.djangoproject.com/en/1.2/ref/forms/api/#binding-uploaded-files-to-a-form

10-04 19:08