2017-08-17 63 views
-1

我試圖將一些.csv文件保存到文件夾中,但使用Python和Django拋出下面的錯誤。我在下面解釋我的錯誤。無法使用Django和Python將csv文件保存到文件夾

錯誤:

Exception Type:  NameError 
Exception Value:  

global name 'filename' is not defined 

我解釋下面我的代碼。

report = Reactor.objects.all() 
    response = HttpResponse(content_type='text/csv') 
    response['Content-Disposition'] = 'attachment; filename='+str(uuid.uuid4())+'.csv' 
    writer = csv.writer(response) 
    writer.writerow(['Name', 'Status', 'Date']) 
    for rec in report: 
     if rec.status == 1: 
      status = 'Start' 
     if rec.status == 0: 
      status = 'Stop' 
     if rec.status == 2: 
      status = 'Suspend' 
     writer.writerow([rec.rname, status, rec.date]) 
    open(settings.FILE_PATH+filename,'w') 
    return response 

settings.py:

FILE_PATH = os.path.join(BASE_DIR, '/upload/') 

在這裏,我擰DB值到.CSV文件並下載。在同一時間,我需要將該下載的文件保存到upload文件夾中,但得到這些錯誤。

+1

'open(settings.FILE_PATH + filename,'w')'這裏是什麼'filename'? – bhansa

+1

你爲什麼在你回來之前打開文件? –

回答

1

這正是錯誤告訴你的。您還沒有定義filename任何地方,但在被稱之爲open(settings.FILE_PATH+filename,'w')

嘗試:

filename = str(uuid.uuid4()) + '.csv' 
response['Content-Disposition'] = 'attachment; filename=' + filename 

相關,但不是你所看到的問題,什麼是開放寫入文件的點,但從不向它寫任何東西?

+0

好的,但我的要求是保存下載的文件。你可以在這裏檢查'filename ='+ str(uuid.uuid4())+'。csv''。 – satya

+0

Hete我可以下載文件,我需要在下載之前保存該文件。 – satya

+0

但是,這是一個字符串的一部分,你要放入'response'中。 – Batman

相關問題