【问题标题】:django oscar: How to send an email to store admin for order placement notification [duplicate]django oscar:如何向商店管理员发送电子邮件以获取订单下达通知 [重复]
【发布时间】:2016-05-07 13:34:48
【问题描述】:

我想收到通知

电子邮件

当我的 django-oscar 商店有新订单时,我自己(作为管理员)。

【问题讨论】:

    标签: django django-oscar


    【解决方案1】:

    我有一种方法可以向管理员发送电子邮件,我所做的是将订单应用程序分叉并转到 utils.py,转到 OrderCreator() 类下的 place_order 函数,oscar 发送信号来自 oscar 的 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,
                )
    

    【讨论】:

      【解决方案2】:

      我认为你可以使用django signals

      Django-Oscar 为多个动作定义了一些信号,其中一个与order placed. 的动作相关联

      此信号提供有关已下订单和下订单的用户的信息。您可以使用此信息发送电子邮件。

      希望对你有用!

      【讨论】:

        猜你喜欢
        • 2019-08-12
        • 2020-10-02
        • 2017-06-14
        • 2019-12-05
        • 2018-03-13
        • 2010-11-27
        • 1970-01-01
        • 2018-01-04
        • 1970-01-01
        相关资源
        最近更新 更多