私はpdfにhtmlをレンダリングしようとしていますが、これはdjangoアクションとしてインクルードしていますが、何らかの奇妙な理由により、 some_attribute ''WSGIRequest'オブジェクトに 'some_attribute'属性がありません
私の見解は次のようになります。
class CreatePdf(ContextMixin, View):
def get_context_data(self, obj, request):
cxt = {'some_attribute': obj.some_attribute,
'today': date.today()}
return cxt
def create_pdf(self, some_template, some_dict={}):
template = get_template(some_template)
html = template.render(some_dict)
result = BytesIO()
pdf = pisa.pisaDocument(BytesIO(html.encode("ISO-8859-1")), result)
if not pdf.err:
return HttpResponse(result.getvalue())
return None
、すべてを呼び出し、すべての魔法を行うには目的を持っていたアクションは、次のようになります。
def get_pdf(self, obj, request):
pdf_view = views.CreatePdf()
pdf = pdf_view.create_pdf('templates/some_template.html', pdf_view.get_context_data(obj,request))
return HttpResponse(pdf)
私が使用していること、考えget_context_data
は、管理フィールドで選択したオブジェクトのフィールドを取得しますが、同じエラーが表示されているようです。
最後に、ではなく、少なくとも、私のadmin.py
に私が持っている:
class MyAdmin(admin.ModelAdmin):
actions = [get_pdf]
申し訳ありませんが、 'get_pdf'とは何ですか?どこから呼び出されていますか? –
私は管理サイトから呼び出すアクションです。私は自分の投稿を編集しました。 – filtfilt
これが解決策であるかどうかはわかりませんが、簡単な設定ベースの問題かもしれません。この質問、特に小さな設定ファイルの微調整だけである最初の答えを確認してください(Ken Mbuki氏による)https://stackoverflow.com/a/39519162/6857994 –