【发布时间】:2010-12-28 14:51:06
【问题描述】:
在下订单时,我需要一些帮助来发送电子邮件。为了说明问题,下面是抽象代码:
class Order(models.Model):
user = models.ForeignKey(User)
class OrderItem(modes.Model):
order = models.ForeignKey(Order, related_name='items')
item = models.CharField(max_length=255)
unit_price = models.DecimalField()
qty = models.IntegerField()
item_amount = models.DecimalField()
def email_order_on_save(sender, instance, **kwargs):
# Need order.items.all() here
pass
post_save.connect(email_order_on_save, sender=Order)
SO 和 google 上的大多数问题似乎一次只处理一个子对象; such as this.
如果从管理员内联中保存了 5 个订单项,则收听 OrderItem 将释放 5 个信号。我似乎无法解决这个问题。一种方法,我认为(不确定是否可能),可能是监听最后一个(5)OrderItem 的 post_save 信号。
任何帮助表示赞赏。
【问题讨论】: