我是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