この質問にはいくつかの要素がありますが、最終的な回答はありません。here私も、このいずれかを試してみましたDjango - ビューで生成されたPDFを添付してメールに添付する
@receiver(post_save, sender=Post)
def first_mail(sender, instance, **kwargs):
if kwargs['created']:
user_email = instance.client.email
subject, from_email, to = 'New account', '[email protected]', user_email
post_id = str(instance.id)
domain = Site.objects.get_current().domain
post_pdf = domain + '/post/' + post_id + '.pdf'
text_content = render_to_string('post/mail_post.txt')
html_content = render_to_string('post/mail_post.html')
# create the email, and attach the HTML version as well.
msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
msg.attach_alternative(html_content, "text/html")
msg.attach_file(post_pdf, 'application/pdf')
msg.send()
:
from easy_pdf.views import PDFTemplateResponseMixin
class PostPDFDetailView(PDFTemplateResponseMixin,DetailView):
model = models.Post
template_name = 'post/post_pdf.html'
はその後、私はこれは次の電子メールにPDFを生成し添付するeasy_pdfでPDFを生成するビューがあり
msg.attach_file(domain + '/post/' + post_id + '.pdf', 'application/pdf')
この問題は、ビューが要求されたときにPDFが生成され、電子メールに添付できないために発生すると考えられます。あれについてどう思う? –
ファイルが作成されていないときに添付ファイルを使用しても問題はありませんでした。試してみる価値があります。ファイルが電子メールに添付しようとしたときにファイルがまだ開いていて、キャッシュに入っていると仮定します。あなたはあなたのエラーを共有できますか? – Doug
easy_pdfを使用すると、PDFはどこかに保存されません。それは生成されるだけです。したがって、report.pdfファイルは存在しません。 –