4

django テンプレート/ビューの PDf を生成したい。テンプレートタグなどを使用する

django-wkhtmltopdf のドキュメントから:

from django.conf.urls.defaults import url, patterns
from wkhtmltopdf.views import PDFTemplateView

urlpatterns = patterns('',
    url(r'^pdf/$', PDFTemplateView.as_view(template_name='my_template.html',
                                           filename='my_pdf.pdf'), name='pdf'),
)

または彼らはあなた自身の見解で言います:

from wkhtmltopdf.views import PDFTemplateView


class MyPDF(PDFTemplateView):
    filename = 'my_pdf.pdf'
    template_name = 'my_template.html'
    cmd_options = {
        'margin-top': 3,
    }

これが私の見解である場合:

def download_report(request):
    vends = Vends.objects.all()
    return render(request, 'report_template.html', {'vends':vends}) 

レンダリングされたこの VIEW のレポートを生成するにはどうすればよいですか? テンプレートだけでなく、それは役に立たないからですか?

4

3 に答える 3

4

私は3年遅れているようです:)とにかく、将来のニーズの参考として、実際のコードサンプルをここに置きます:

urls.py

# here you must import MyPDF from [your-app-name].views

urlpatterns = [
  url(r'^pdf/$', MyPDF.as_view(template_name='my_template.html',
                                             filename='my_pdf.pdf'), name='pdf'),
]

ビュー.py

from wkhtmltopdf.views import PDFTemplateView

class MyPDF(PDFTemplateView):
    def get_context_data(self, **kwargs):
        context = super(MyPDF, self).get_context_data(**kwargs)
        context['foo'] = 'BAR'
        return context

my_template.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>
    <h1>{{ foo }}</h1>
</body>
</html>
于 2017-03-31T09:26:05.537 に答える
1

あなたと同じ問題を抱えていて、適切にCSS + JSをレンダリングすることですべてが機能しましたが、データをレンダリングまたは渡してテンプレートをレンダリングしてから変換する方法もわかりません。

誰かがヒントを与えたり、良い方向を指し示すことができれば、それは素晴らしいことです.

于 2013-06-21T08:09:20.433 に答える