Wkhtmltopdf-django динамический шаблон для рендеринга

Есть ли способ генерировать PDF динамически, с получением содержимого из базы данных?

Моя цель - позволить моим пользователям создавать собственный дизайн PDF из редактора wysiwyg.

Это моя модель

    class DocumentService(models.Model):
        name = models.CharField(max_length=60, blank=True)
        html_content = models.TextField(blank=True)

Я использую django-wkhtmltopdf для рендеринга html в PDF.

    response = PDFTemplateResponse(
            request=request,
            template="document.html",
            filename=filename,
            context=data,
            show_content_in_browser=True,
            cmd_options=cmd_options,
        )

Как я могу перенести содержимое этой записи в мой PDF?

    document = DocumentService.objects.get(pk=1)
    document.html_content # <-- this content

Содержание HTML должно быть примерно таким

<html>
  <body>
    <p>
      <strong>Date: </strong> {{date}}
      <strong>User: </strong> {{user.name}}
      <strong>Email: </strong> {{user.email}}
      <strong>Info: </strong> {{user.info}}
      ...
    </p>
  </body>
 </html>

Просто используйте render_to_string() для отображения данных следующим образом

from django.template.loader import render_to_string

document = DocumentService.objects.get(pk=1)
temp = render_to_string("document.html", {'data':document.html_content})
response = PDFTemplateResponse(
            request=request,
            template=temp,
            filename=filename,
            context=data,
            show_content_in_browser=True,
            cmd_options=cmd_options,
        )

и внутри вашего document.html вы должны добавить следующее

<body>
 {{data|safe}} <!--- Use safe if you want to render html --->
</body>
Вернуться на верх