WeasyPrint を使用して PDF を作成しています。PDF は簡単に 120 ページを超え、レンダリングに最大 2 分かかる場合があります。これが発生している間、ページはフリーズしているように見え、応答しません。セロリを調べていますが、そこに着くまでプログレスバーを実装したいと思います:
完璧な解決策: どうにかして PDF エクスポートの現在のステータスを取得し、進行状況バーに表示します
許容される解決策: PDF がブラウザーの表示に表示されるまで、または PDF 自体がダウンロードされるまでに最大 2 分かかる可能性があることをユーザーに伝える、動くプログレス バーを表示します。
何か案は?ありがとう!
現在のviews.py:
def course_view(request):
students = Student.objects.filter(student_courseid__course_accid = request.user.userprofile.course_accid)
html_template = get_template('student/student_pdf_all.html')
rendered_html = html_template.render({'student': students}, request)
pdf_file = HTML(string=rendered_html, base_url=request.build_absolute_uri()).write_pdf(stylesheets=[CSS(settings.STATIC_ROOT + '/css/pdf.css')])
http_response = HttpResponse(pdf_file, content_type='application/pdf')
filename = str(request.user.userprofile.course_accid) + ".pdf"
http_response['Content-Disposition'] = 'filename="{}"'.format(filename)
return http_response