在一个Satchmo商店,我需要附上一个小.png (条形码)的电子邮件,姜戈发送的订单完成。电子邮件是使用send_order_confirmation()格式化的,该方法调用send_store_mail() (两者都是satchmo的一部分)。这两个函数都不提供附加文件的功能(我认为),所以我应该重写它们吗?我想知道是否有可能/更好地使用信号来做这件事。也许是rendering_store_mail()?
顺便说一句,条形码是动态生成的,因此无法链接到服务器上某个位置的文件。
非常感谢,托马斯
发布于 2012-04-24 16:16:19
好吧,我也不得不在确认电子邮件中添加额外的信息,尽管只有文本。因此,这将是使用信号向电子邮件添加额外内容的非常简单的方法,这是最好的方法。如果可以避免覆盖satchmo-core,请始终使用信号;-)
get_barcode_img(<order>)的函数。我在这里也假设,get_barcode_img函数不仅会返回png,还会返回类似MIMEImage (如from email.MIMEImage import MIMEImage)的内容,以便能够将其包含在内联中。此外,可能还需要更多的信息,比如img.localsite/payment/listeners.py def add_extra_context_to_store_mail(send_mail_args=,context={},**kwargs):如果上下文中没有'order‘:返回context’‘barcode_header’= get_barcode_header(context'order') context‘’barcode_img‘= get_barcode_img(context'order') context’‘notes’= context'order'.notesmodels.pylocalsite/payment/models.py,在本地rendering_store_mail.connect(payment_listeners.add_extra_context_to_store_mail,sender=order_notice_sender)order_placed_notice.html)以添加新的上下文。注意您将模板放在哪里,因为路径对于django获取新模板而不是satchmo的模板至关重要。在这种情况下,从项目的根路径开始,可能会有一个模板文件夹,在其中,必须有与satchmo文件夹中完全相同的路径。例如/templates/shop/email/order_placed_notice.html ..。这可以应用于应用程序中的任何“有效”模板文件夹。模板的组织位置/组织方式由您决定。https://stackoverflow.com/questions/10152423
复制相似问题