django télécharger le fichier csv à l'aide d'un lien

Je suis un nouveau de django et python. Besoin de quelques conseils dans cette quête.

Cas: Lorsque l'utilisateur appuie sur le bouton submit d'un formulaire, il doit afficher la Réussite de la page et un lien où ils peuvent télécharger les résultats. Les résultats sont dans le fichier excel. Je peux créer des fichiers de sortie de fichier excel à l'aide de xlwt module et afficher la page de succès individuel, mais pas les deux en même temps.

Ce que j'ai:
Je suis en cours d'exécution django1.1.1 sur windows XP avec la version 2.6 de python. Il y était question similaire posée
mais n'a pas été capable de le faire fonctionner.

mon succès page.html a cette ligne

<a href="../static/example.xls">Download CSV File</a>

urls.py:

url(r'^static/(?P<path>.*)$', send_file), 

views.py:

def send_file(request):

import os, tempfile, zipfile
from django.core.servers.basehttp import FileWrapper

"""                                                                         
Send a file through Django without loading the whole file into              
memory at once. The FileWrapper will turn the file object into an           
iterator for chunks of 8KB.                                                 
"""
filename = "C:/example.xls" # Select your file here.                                
wrapper = FileWrapper(file(filename),"rb")
response = HttpResponse(wrapper, content_type='text/plain')
#response['Content-Length'] = os.path.getsize(filename)
return response

Quand je clique sur le lien, il donne une erreur de chemin d'accès

send_file() got an unexpected keyword argument 'path'
Request Method: GET
Request URL:    localhost:8000/webinput/static/example.xls
Exception Type: TypeError
Exception Value:    
send_file() got an unexpected keyword argument 'path'

BTW example.xls est tout à la fois les emplacements C:/example.xls et en statique dossier

Structure:

  • webdb
    • Statique
      • example.xls
    • Webinput
      • urls.py
      • views.py
      • models.py

J'ai ces 2 modules. Si j'utilise backup_to_csv il fonctionne très bien mais il downlods directement, sans lien. Comment faire la même chose quand j'ai déjà un fichier. Si il y a d'autres façons où je n'ai pas de fichier de la banque, c'est très bien aussi.

def xls_to_response(xls, fname):

response = HttpResponse(mimetype="application/ms-excel")
response['Content-Disposition'] = 'attachment; filename=%s' % fname
xls.save(response)
return response

def backup_to_csv(demande,d'une ligne):

response = HttpResponse(mimetype='text/csv')
response['Content-Disposition'] = 'attachment; filename="backup.csv"'
writer = csv.writer(response, dialect='excel')    
#code for writing csv file go here...
for i in row:
    writer.writerow(i)
return response

OriginalL'auteur user234850 | 2009-12-18