【发布时间】:2016-05-07 13:34:48
【问题描述】:
我想收到通知
电子邮件
当我的 django-oscar 商店有新订单时,我自己(作为管理员)。
【问题讨论】:
标签: django django-oscar
我想收到通知
电子邮件
当我的 django-oscar 商店有新订单时,我自己(作为管理员)。
【问题讨论】:
标签: django django-oscar
我有一种方法可以向管理员发送电子邮件,我所做的是将订单应用程序分叉并转到 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,
)
【讨论】:
我认为你可以使用django signals。
Django-Oscar 为多个动作定义了一些信号,其中一个与order placed. 的动作相关联
此信号提供有关已下订单和下订单的用户的信息。您可以使用此信息发送电子邮件。
希望对你有用!
【讨论】: