我正在使用Django
创建一个站点,用户在该站点上载一个文件(例如test.png
),然后对该文件进行处理,并在本地目录{中创建一个新文件(test.csv
)。 {1}}。
用户可以继续上传文件,并创建更多../django/myproject/mysite/csv/test.csv
个文件。结果页面将显示.csv
个文件,用户可以下载这些文件。
但是,我很困惑,因为我无法下载它们。
views.py
.csv
results.html
def make_csv(request):
...
csv_filename = str(in_csv_file)
#send to result page
return render(request, 'thesite/results.html', {"csv_filename": csv_filename})
def download_csv(request, csvfile):
path = os.path.join(SETTING_DIR)
filename = path + csvfile + ".csv"
filewrapper = FileWrapper(open(filename, 'rb'))
response = HttpResponse(filewrapper, content_type='text/csv')
response['Content-Length'] = os.path.getsize(filename)
response['Content-Disposition'] = 'attachment; filename="{}"'.format(csvfile +".csv")
return response
urls.py
<tbody>
<tr>
<td></td>
<td>{{csv_filename}}</td>
<td>
<a href='/thesite/download_csv/{{csv_filename}}'>
Download {# do i add something here? #}
</a>
</td>
</tr>
</tbody>
很抱歉,我的问题不清楚。谢谢您的帮助。
答案 0 :(得分:0)
您需要获取静态URL。另外,请确保正确设置了STATIC_ROOT和STATIC_URL。
{% load static %} #first load static files at the top of template
<a href="{% static '/path/to/{{csv_filename}}' %}">Download</a>