当制造日期为零时,我使用Django芹菜发送电子邮件。我正在成功地发送电子邮件,但在电子邮件中,我也想包括该特定订单的订单ID,没有制造日期,我如何做到这一点?
@shared_task
def check_for_orders():
orders = Order.objects.all()
for order in orders:
if order.manu_date is None:
send_mail('Manufacturing Reminder',
' {{order.id}} manufacturing date is none ',
'dummyguy1680@gmail.com',
['dummyguy1680@gmail.com'])
return None
发布于 2020-07-20 08:44:04
你有几个选择。最简单的方法可能是使用字符串格式:
@shared_task
def check_for_orders():
orders = Order.objects.all()
for order in orders:
if order.manu_date is None:
body = '{} manufacturing date is none '.format(order.id),
send_mail('Manufacturing Reminder',
body
'dummyguy1680@gmail.com',
['dummyguy1680@gmail.com'])
return None
如果使用Python3.6或更高版本,也可以使用f-字符串:
body = f'{order.id} manufacturing date is none '
您可以在字符串中读取Django模板:
from django.template import Template, Context
..
t = Template("{{order.id}} manufacturing date is none")
c = Context({"order": "order"})
body t.render(c)
但在这种情况下,最好将消息模板放在单独的文件中,并使用字符串进行呈现。
from django.template.loader import render_to_string
body = render_to_string('manufacturing_reminder.txt', {'order': order})
在manufacturing_reminder.txt
中
{{order.id}} manufacturing date is none
注意:如果您正在发送电子邮件,请不要使用字符串格式来避免代码注入漏洞。使用Django模板,它负责正确的转义。
https://stackoverflow.com/questions/62991613
复制相似问题