Création de fichiers PDF avec django (wkhtmltopdf)
Quelqu'un pourrait-il svp me fournir un exemple complet de la façon d'obtenir un view
dans django
retour d'un PDF
à l'aide de wkhtmltopdf
. Il y a un nombre restreint d'exemples qui viennent avec django-wkhtmltopdf
et ils pensent à un niveau de connaissance, je n'ai pas. J'ai regardé dans le code source, mais je ne peux pas faire des têtes ou queues de la façon de l'utiliser (par exemple quelle est la différence entre PDFTemplateView
et PDFTemplateResponse
?!?)
Je vous serais très reconnaissant pour toute aide.
BTW(je suis à l'aide de modèles pour l'en-tête et pied de page)
MODIFIER
def some_view(request,sID):
something = get_object_or_404(Something,id=sID)
return render_to_response('something.html', {'something':something}, context_instance=RequestContext(request))
Comment puis-je obtenir la simple vue de me fournir une pdf
au lieu d'une html
fichier?
EDIT 2
Je suis en train de jouer autour avec:
def pdf_view(request,sID):
template = 'pdf.html'
something = get_object_or_404(Something,id=sID)
context = {
'something' : Something,
'object_for_header_and_footer': something.object_for_header_and_footer,
}
cmd_options = settings.WKHTMLTOPDF_CMD_OPTIONS
return PDFTemplateResponse(request=request,
context=context,
template=template,
filename='something',
header_template='header.html',
footer_template='footer.html',
cmd_options=cmd_options)
mais je suis 'str' object has no attribute 'update'
dans /usr/local/lib/python2.7/dist-packages/wkhtmltopdf/utils.py in wkhtmltopdf, line 74
. Je ne sais pas si à partir de piratage wkhtmltopdf?!?!
source d'informationauteur Sevenearths
Vous devez vous connecter pour publier un commentaire.
La différence entre PDFTemplateView et PDFTemplateResponse est que la vue est une classe de base point de vue. Et PDFTemplateResponse rend le pdf de données et définit le droit en-têtes de réponse. Pour ajouter un en-tête et pied de page:
Ouverture pdf/dans votre navigateur va lancer un téléchargement de my_pdf.pdf basés sur l'my_template.html, my_header_template.html et my_footer_template.html.
La exemple avancé montre comment la sous-classe PDFTemplateView l'extension et la modification de la logique de PDFTemplateView. Pour comprendre ce qui se passe lire Utilisation de la classe des vues basées sur les.
Comme
header_template
etfooter_template
vous pouvez définir unresponse_class
. Parce que PDFTemplateResponse est la valeur par défaut, vous n'avez pas à le définir.MODIFIER
Suivantes simple vue vous propose un fichier pdf au lieu de html. Ce n'est pas à l'aide de django-wkhtmltopdf. Vous pouvez utiliser wkhtmltopdf dans votre html2pdf fonction.
EDIT 2
Un simple point de vue avec le contexte:
template.html
urls.py
views.py
MODIFIER 3
Si vous utilisez une fenêtre detravail, vous pouvez ajouter l'objet à son contexte:
Hmm l'erreur indique que vous êtes de passage de la chaîne, quelque part que vous ne devriez pas.
Après une vérification de son le code sourceje suppose que dans
settings.py
vous avezWKHTMLTOPDF_CMD_OPTIONS
comme une chaîne de caractères, quelque chose commeMais vous devez affecter un dict:
Sinon, votre code doit fonctionner correctement.