0
私はPDFファイルを生成し、Django FileField
に追加しようとしています。生成されたPDFをFileFieldに追加できません。ローカルPDFを追加する作業
>>> invoice = Invoice.objects.get(pk=153)
>>> local_file = open('my.pdf')
>>> djangofile = File(local_file)
>>> type(local_file)
<type 'file'>
>>> type(djangofile)
<class 'django.core.files.base.File'>
>>> invoice.pdf = djangofile
>>> invoice.pdf
<FieldFile: my.pdf>
>>> invoice.save()
>>> invoice.pdf
<FieldFile: documents/invoices/2016/07/my.pdf>
をしかし、生成されたPDFと同じことをしようとしたとき、物事は「ドン:変わったことはしますが、私は私が
私のハードドライブ上のローカルファイルを使用して、すべてが正常に動作し得るように見えることはできませんt仕事:
>>> invoice = Invoice.objects.get(pk=154)
>>> html_template = get_template('invoicing/invoice_pdf.html')
>>> rendered_html = html_template.render({'invoice': invoice}).encode(encoding="UTF-8")
>>> pdf_file = HTML(string=rendered_html).write_pdf()
>>> type(pdf_file)
<type 'str'>
>>> djangofile = File(pdf_file)
>>> type(djangofile)
<class 'django.core.files.base.File'>
>>> invoice.pdf = djangofile
>>> invoice.pdf
<FieldFile: None>
>>> invoice.save()
>>> invoice.pdf
<FieldFile: None>
私は間違っていますか?なぜ1つのdjango.core.files.base.File
オブジェクトが受け入れられ、別のオブジェクトが受け入れられないのですか?
ありがとうございました。欠落しているのは、 'invoice.pdf.name'によってストレージのファイル名を指定する必要があったか、実際の' save() 'は発生していないということです。私はあなたの答えを調整しました。 – SaeX