Как настроить отклик вида django-weasyprint - PullRequest
0 голосов
/ 16 июня 2019

Я бы хотел немного изменить поведение при генерации pdf с помощью модуля django-weasyprint.

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

Я создал CBV, используя следующий класс:

class GeneratePDF(WeasyTemplateView):
    pdf_filename = 'resolutions_dj.pdf'
    template_name = 'polls/resolutions.html'


    def get(self, request, *args, **kwargs):
        context = self.get_context_data(**kwargs)
        return self.render_to_response(context)

Это работает, но показывает мне либо PDF, либо диалоговое окно для сохранения файла.get_context_data() метод переопределен, но я не думаю, что он имеет какое-либо значение.

Я хотел бы использовать этот метод get() для более активных действий после рендеринга PDF.Я попробовал этот код, но он не работает (не сгенерирован pdf, нет диалогового окна):

class GeneratePDF(WeasyTemplateView):
    pdf_filename = 'resolutions_dj.pdf'
    template_name = 'polls/resolutions.html'


    def get(self, request, *args, **kwargs):
        context = self.get_context_data(**kwargs)
        response = self.render_to_response(context)
        return redirect('polls:event', event_slug=context['event'].slug)

Ключ, кажется, в этой строке: response = self.render_to_response(context) Я не понимаю, почему он не работает.

Наконец, я нашел способ сохранить pdf, не показывая его и не отображая диалоговое окно, переопределив свойство rendered_content (из класса WeasyTemplateResponse) и добавив response_class = PersoWeasyTemplateResponse в мой GeneratePDF, но он отображает пустую страницу pdf

Заранее спасибо за помощь

...