我对使用Django相当陌生,我正在尝试开发一个网站,用户可以上传多个Excel文件,这些文件将被存储在一个媒体文件夹中Webproject/project/media。
def upload(request):
if request.POST:
form = FileForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return render_to_response('project/upload_successful.html')
else:
form = FileForm()
args = {}
args.update(csrf(request))
args['form'] = form
return render_to_response('project/create.html', args)
然后该文档将与他们上传的任何其他文档一起显示在列表中,您可以单击进入其中一个文档并显示有关它们以及上传的Excel文件名称的基本信息。从这里,我希望能够使用链接再次下载相同的Excel文件:
<a href="/project/download"> Download Document </a>
我的网址是
urlpatterns = [
url(r'^$', ListView.as_view(queryset=Post.objects.all().order_by("-date")[:25],
template_name="project/project.html")),
url(r'^(?P<pk>\d+)$', DetailView.as_view(model=Post, template_name="project/post.html")),
url(r'^upload/$', upload),
url(r'^download/(?P<path>.*)$', serve, {'document root': settings.MEDIA_ROOT}),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
但是我遇到了错误,serve()收到了一个未预期的关键字参数 'document root'。有人可以解释如何修复这个问题吗?
或者
请说明如何使用上传文件并进行选择和服务。
def download(request):
file_name = #get the filename of desired excel file
path_to_file = #get the path of desired excel file
response = HttpResponse(mimetype='application/force-download')
response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(file_name)
response['X-Sendfile'] = smart_str(path_to_file)
return response
serve
视图的代码包含进来吗? - xthestreams