Загрузка файла из шаблона 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>
Вернуться на верх