как дать ссылку для скачивания сгенерированного PDF в Django - PullRequest
1 голос
/ 29 марта 2012

Я сгенерировал отчет PDF из базы данных по коду ниже в views.py

 resp = HttpResponse(mimetype='application/pdf')
 txn = transaction.objects.order_by('user', 'id')
 report = txn_reports(queryset=txn)
 print report
 report.generate_by(PDFGenerator, filename='filename.pdf')'

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

Я хочу предоставить опцию загрузки для этого PDF в браузере клиента.Как добавить функцию «Сохранить как» для этого файла в HTML, чтобы клиент мог загрузить его в формате PDF

Ответы [ 2 ]

1 голос
/ 29 марта 2012

Возьмите данные PDF и отправьте как HttpReponse.

В прошлом я делал что-то подобное, генерируя отчеты с помощью pisa:

template = get_template("my_template.html")
context = Context({"data": report_data})
html  = template.render(context)
result = StringIO.StringIO()
pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("UTF-8")), result)
if not pdf.err:
    return HttpResponse(result.getvalue(), mimetype='application/pdf')

Для вас действительно важнопоследняя строка, где мы возвращаем HttpResponse с документом pdf.Затем браузер пользователя предложит ему сохранить его или, возможно, отобразить, если он поддерживается.

0 голосов
/ 29 марта 2012

Что вы можете сделать, это отправить этот PDF-файл как HttpResponse в браузер, браузер автоматически откроет PDF-файл и предложит пользователю способ сохранить его.

...