Ich benutze WeasyPrint, um ein PDF zu erstellen. Die PDFs können leicht über 120 Seiten erreichen und bis zu 2 Minuten dauern. Während dies geschieht, sieht die Seite eingefroren aus und reagiert nicht. Ich suche in Sellerie, aber bis ich es bekommen würde Ich mag einen Fortschrittsbalken implementieren:Fortschrittsbalken für Django WeasyPrint PDF Export anzeigen
perfekte Lösung: Irgendwie den aktuellen Status der PDF-Export packen und zeigen es in einem Fortschrittsbalken
Acceptable Solution: Zeigen Sie eine bewegende Fortschrittsanzeige an, die dem Benutzer mitteilt, dass es bis zu zwei Minuten dauern kann, bis die PDF-Datei im Browser angezeigt/heruntergeladen wird.
Irgendwelche Ideen? Vielen Dank!
aktuellen 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
Vielen Dank für Ihre Antwort! Kannst du mich auf Ressourcen hinweisen, in denen "das Backend" beschrieben wird? Ich habe derzeit keine Ahnung, wie ich das machen würde. – kftb
Tut mir leid, indem ich das Backend treffe, ich meine Ajax Anrufe zu einer URL machen. Dafür gibt es zahlreiche Beispiele (Django mit Ajax). – RA123