Django的奥斯卡:如何发送电子邮件存储管理员为下订单的通知

问题描述 投票:0回答:2

我希望得到一个通知

电子邮件

对自己(作为管理员),当有新的订单放在我的Django的奥斯卡店。

django django-oscar
2个回答
0
投票

我认为,你可以使用django signals

Django的奥斯卡有多个操作定义了一些信号,其中一人被关联到order placed.的作用

这个信号提供有关所发出的命令,谁取得了订单的用户信息。您可以使用这些信息来发送电子邮件。

我希望这将是对您有用!


0
投票

还有就是我下面将电子邮件发送到管理员的方式,我做了什么是分叉的顺序应用程序和去了utils.py,跑到place_order功能OrderCreator下()类,奥斯卡发送信号,下订单的从奥斯卡的GitHub的代码是here,所以我所做的就是把我发送电子邮件的代码在此之后。于是我在我的管理端创建一个通讯事件类型与代码ADMIN_ORDER_MAIL和使用,在这里发送邮件。

我的代码是在这里:

# Send an email to admin on placing of order
        ctx = {'order': order, 'user': order.user}
        commtype_code = 'ADMIN_ORDER_MAIL'
        try:
            event_type = CommunicationEventType.objects.get(code=commtype_code)
            # print("Event type typr: ", type(event_type))
            # self.create_communication_event(order, event_type)

        except Exception as e:
            messages = CommunicationEventType.objects.get_and_render(code=commtype_code, context=ctx)
            # print(e)
        else:
            messages = event_type.get_messages(ctx)

            send_mail(
                subject=messages['subject'],
                message='',
                html_message=messages['html'],
                from_email='from email address',
                recipient_list=['to email address'],
                fail_silently=False,
            )
© www.soinside.com 2019 - 2024. All rights reserved.