Как заставить всплывающий файл сгенерировать загрузку в Django 2? - PullRequest
0 голосов
/ 11 марта 2019

Я работал над системой генерации изображений штрих-кода и создавал PDF для печати. ​​

Вот мой view.py

from reportlab.pdfgen import canvas
from reportlab.lib.units import inch, cm
from reportlab.platypus import Paragraph

canvas.Canvas('assets/pdf_print/'+barCode+'.pdf')

c.drawImage('1.png',0.9*cm,0,3.5*cm,1.8*cm)
c.drawImage('1.png',4.8*cm,0,3.5*cm,1.8*cm)
c.drawImage('1.png',8.9*cm,0,3.5*cm,1.8*cm)
c.drawImage('1.png',12.7*cm,0,3.5*cm,1.8*cm)
c.drawImage('1.png',16.7*cm,0,3.5*cm,1.8*cm)

c.showPage()
c.save()

Я сохраняю этот PDF-файл по этому пути , успешно используя лабораторию отчетов

активы / pdf_print /

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

Как я мог сделать это в Джанго?

1 Ответ

1 голос
/ 11 марта 2019

просто создайте ссылку href pop со ссылкой для просмотра, которая возвращает файл PDF в качестве ответа

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

from django.http import FileResponse, Http404

def pdf_view(request):
    try:
        return FileResponse(open('foobar.pdf', 'rb'), content_type='application/pdf')
    except FileNotFoundError:
        raise Http404()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...