2017-05-22 6 views
0

こんにちは、メディアフォルダのcsvファイルをアップロードしてください。このファイルをpythonのリストに渡してpdfを作成します。どのように私はdjangoのfucntionでこのファイルを呼び出すことができますか、それを行うには良い方法がありますか?djangoでアップロードしたファイルを取得して関数に渡す方法

これは私がファイルをアップロードする方法です:

def subir_archivos(request): 
    if request.method == 'POST' and request.FILES['myfile']: 
      myfile = request.FILES['myfile'] 
      fs = FileSystemStorage() 
      filename = fs.save(myfile.name, myfile) 
      uploaded_file_url = fs.url(filename) 
      return render(request, 'subir_csv.html', { 
       'uploaded_file_url': uploaded_file_url 
      }) 
    return render(request, 'subir_csv.html') 

とPythonリストにcsvファイルを渡す方法:

def csv_empresas(request): 
    lista = [] 

    with open('media/empresas.csv') as csvfile: 
     lector = csv.reader(csvfile, delimiter=',',quotechar='|') 
     for row in lector: 
      lista.append(row) 


    return render(request,'preparar_pdf.html',{"lista": lista}) 
+0

を得るので、どのような問題あなたは – Exprator

+0

に直面しているためupload_files

def subir_archivos(request): if request.method == 'POST' and request.FILES['myfile']: myfile = request.FILES['myfile'] file_obj = myfile.read() media_path = settings.MEDIA_ROOT file_path= os.path.join(media_path, "upload_files") if not os.path.isdir(file_path): try: os.makedir(file_path) except OSError as e: pass file = os.path.join(file_path, myfile.name) with open(file, 'wb') as f: f.write(file_obj) uploaded_file_url = os.path.join("/media", "upload_files", myfile.name) return render(request, 'subir_csv.html', { 'uploaded_file_url': uploaded_file_url }) return render(request, 'subir_csv.html') 

とコードをlled問題がある:私は(ジャンゴで5リストを渡す5つのCSVファイルからPDFを作成する必要があります関数のビュー)とcsvの名前が異なる可能性がありますので、この5つのリストを関数に渡す方法はわかりません。 –

+0

私の英語のために申し訳ありません。 –

答えて

0

ファイルのアップロード中に、あなたはすべて保存することができますメディアフォルダ内の1つのフォルダにアップロードされたファイル

アップロードされたファイルをフォルダcaに保存するコードすべてアップロードされたファイルに

import os 
def csv_empresas(request): 
    lista = [] 
    media_path = settings.MEDIA_ROOT 
    file_path= os.path.join(media_path, "upload_files") 
    files = os.listdir(file_path) 
    for file in files: 
     with open(file, 'rb') as csvfile: 
      lector = csv.reader(csvfile, delimiter=',',quotechar='|') 
      for row in lector: 
       lista.append(row) 
    return render(request,'preparar_pdf.html',{"lista": lista}) 
関連する問題