Я бы хотел немного изменить поведение при генерации 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
Заранее спасибо за помощь