Ich bin ziemlich neu in der Verwendung von Django und ich versuche, eine Website zu entwickeln, wo der Benutzer eine Reihe von Excel-Dateien hochladen kann, diese Dateien werden dann in einem Medienordner gespeichert Webprojekt/Projekt/Medien.Django eine Datei herunterladen
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)
Das Dokument wird dann in einer Liste angezeigt zusammen mit einem anderen Dokument sie hochgeladen haben, die Sie in und es wird angezeigt grundlegende Informationen über sie und den Namen des Excelfile klicken können sie hochgeladen haben. Von hier aus möchte ich Excel die gleiche herunterladen können Datei erneut über den Link:
<a href="/project/download"> Download Document </a>
Meine Urls sind
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)
aber ich habe den Fehler, dienen() bekam ein unerwartetes Schlüsselwort-Argument ' Dokument Root'. kann jemand erklären, wie man das repariert?
ODER
erklären, wie ich die hochgeladenen Dateien erhalten kann ausgewählt werden und serviert mit
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
können Sie den Code aus der 'serve' Ansicht einschließen? – xthestreams