Передать аргументы

Пользователь заполняет форму, нажимает отправить, далее его перекидывает на страницу успешной отправки формы и я передаю название файла, в котором генерируется заявление в doc формате. name_file - это название сформированного документа.

return render(request, "succes.html", {'name_file': name_file})

На странице succes у меня есть кнопка "Скачать" и я хочу, чтобы при нажатии на нее начиналось скачивание файла. Но я никак не могу передать название файла в другую функцию.

<div class="alert alert-success" role="alert">
    Ваше заявление успешно сформировано, можете скачать по ссылке:
    <form action="{% url 'upload' %}" method="post">
        {% csrf_token %}
        <button type="submit">Скачать {{name_file}} </button>
    </form>
</div>

После нажатия на кнопку Скачать, перекидывает на страницу upload

def upload(request):
    if request.method == 'POST':
        return FileResponse(open(name_file, 'rb'))

Вопрос: Как передать название файла в form?

Сделал передачу переменной через url

<div class="alert alert-success" role="alert">
    Ваше заявление успешно сформировано, можете скачать по ссылке:
    <form action="{% url 'upload' name_file %}" method="post">
        {% csrf_token %}
        <button type="submit">Скачать {{name_file}}</button>
    </form>
</div>

И в функцию, которая выдает файл на скачивание, добавил аргумент name_file

def upload(request, name_file):
    if request.method == 'POST':
        return FileResponse(open(name_file, 'rb'))
Вернуться на верх