gpt4 book ai didi

Django:一次保存多个对象信号

转载 作者:行者123 更新时间:2023-12-04 00:51:28 25 4
gpt4 key购买 nike

我需要一些关于在下订单时发送电子邮件的帮助。为了说明问题,下面是抽象代码:

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 信号。

感谢任何帮助。

最佳答案

我猜你试图在错误的地方解决这个问题。订单完成时发送电子邮件和保存订单模型处于不同的抽象级别。

我认为发送电子邮件应该由 View 中的某些条件触发,该 View 具有有关订单是否已完全保存的更多信息。例如,如果订单需要更新(比如状态更改),会发生什么情况?是否也应该发送电子邮件?

关于Django:一次保存多个对象信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1937933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com