首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在django电子邮件中提供详细信息

在django电子邮件中提供详细信息
EN

Stack Overflow用户
提问于 2020-07-20 08:39:00
回答 1查看 146关注 0票数 0

当制造日期为零时,我使用Django芹菜发送电子邮件。我正在成功地发送电子邮件,但在电子邮件中,我也想包括该特定订单的订单ID,没有制造日期,我如何做到这一点?

代码语言:javascript
运行
复制
@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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-20 08:44:04

你有几个选择。最简单的方法可能是使用字符串格式:

代码语言:javascript
运行
复制
@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-字符串:

代码语言:javascript
运行
复制
body = f'{order.id} manufacturing date is none '

您可以在字符串中读取Django模板:

代码语言:javascript
运行
复制
from django.template import Template, Context
..
t = Template("{{order.id}} manufacturing date is none")
c = Context({"order": "order"})
body t.render(c)

但在这种情况下,最好将消息模板放在单独的文件中,并使用字符串进行呈现。

代码语言:javascript
运行
复制
from django.template.loader import render_to_string

body = render_to_string('manufacturing_reminder.txt', {'order': order})

manufacturing_reminder.txt

代码语言:javascript
运行
复制
{{order.id}} manufacturing date is none

注意:如果您正在发送电子邮件,请不要使用字符串格式来避免代码注入漏洞。使用Django模板,它负责正确的转义。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62991613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档