Django как скачать документ, который был введен в форму - PullRequest
0 голосов
/ 01 марта 2020

django 3,0 python 3,8

Вот немного странный вопрос. Как вы сразу скачиваете документ, который был загружен. Это может показаться глупым, но я пытаюсь это сделать и не могу этого сделать. Большинство вещей, которые я смотрю на это, хотят, чтобы вы скачали файл, который сохранен где-то, но уловка в моих случаях в том, что файл никогда не был сохранен (и не должен быть). Это полностью в памяти. Я хочу дать загруженное имя с тем же именем, что и введенная форма. Я сейчас загружаю файл, но он пустой и имеет нечетное имя.

Пока у меня есть это:

Views.py

class UpandDownloadFileView(TemplateView):
    form_class = UpandDownloadFileForm

    def post(self,request,*args,**kwargs):
        print('hi we posting files')
        print(self.request.POST)
        print(self.request.FILES)
        response = HttpResponse()
        response.write(self.request.FILES)
        response['Content-Disposition'] = 'attachment; filename={0}'.format(str(self.request.FILES))
        return response

forms.py

class PopulateDocumentCreateForm(forms.Form):
    pass

html

<form method="post" action="{% url 'inputs:create' %}" enctype="multipart/form-data">{% csrf_token %}
        <div class='row'>
            <div class='col'>
                <p><input name="file" id="id_file" type="file"></p>
            </div>
        </div>
        <div class='row'>
            <div class='col'>
                <button class="btn btn-primary" type="submit">Submit</button>
            </div>
        </div>
</form>

(подтверждение будет позже)

...