Загрузка файла из шаблона Django по щелчку не работает
Я пробовал несколько способов загрузить файл по клику из шаблона Django, но загрузка просто не начинается. Вот мой вид, в котором я получаю путь к файлу:
def success(request):
model_file_path = request.session.get('model_file_path')
if request.method == 'POST':
return render(request, "success.html", {'filepath': model_file_path})
else:
return render(request, "success.html", {'filepath': model_file_path})
А вот то, что я безуспешно пытался сделать в шаблоне успеха:
<a href='{{filepath}}' download>download</a>
<a href='{{ MEDIA_URL }}{{filepath}}' download={{filepath}}>download</a>
<a href='{{filepath}}' download={{filepath}}>download</a>
Просто не запускается загрузка, хотя путь указан правильно.
Вам следует использовать FileResponse из django.http из django.http import FileResponse.
...
return FileResponse(open(model_file_path, 'rb'), as_attachment=True)
else:
return FileResponse(open(model_file_path, 'rb'), as_attachment=True)
Редактирование:
def success(request):
model_file_path = request.session.get('model_file_path')
if request.method == 'POST':
return render(request, 'success.html')
else:
return FileResponse(open(model_file_path, 'rb'), as_attachment=True)
<a href='{{ MEDIA_URL }}{{filepath}}' download={{filepath}}>download</a>