Django signals Django发出信号更新不同的模型

Django signals Django发出信号更新不同的模型,django-signals,django-1.4,Django Signals,Django 1.4,假设我有两个模型: class Product(models.Model): product = model.CharField() quantity = model.IntegerField() class sale(models.Model) product = models.ManyToManyField(Product) number_sold = model. IntegerField() 销售时,我希望更新产品数量。信号是最好的方法吗 我正在考虑让

假设我有两个模型:

class Product(models.Model):
    product = model.CharField()
    quantity = model.IntegerField()

class sale(models.Model)
    product = models.ManyToManyField(Product)
    number_sold = model. IntegerField()
销售时,我希望更新产品数量。信号是最好的方法吗

我正在考虑让sale在创建或更新对象时发出post_save信号。如果更新,我必须知道旧值和新值,以便正确调整数量。产品表必须监听此信号

我还考虑让product表在更新数量后发送一个定制信号。如果数量<0的项目在延期订单上,否则成功

我不熟悉django和signals,但这是对signals的适当使用还是它们的更好的方法?我阅读了文档,观看了pycon关于信号的视频,并阅读了一些示例。我还没有看到以这种方式使用的信号,但我想不出任何其他方式来完成这项任务

这就是我最终实现目标的方式,我很想知道这是否是正确的方式。我为模型与下面的代码不匹配而道歉,我简化了我的模型以使其更简单

@receiver(pre_save, sender=Customer_Order_Products)
    def update_quantity(sender, **kwargs):
        obj = kwargs['instance']
        updated_product = Inventory.objects.get(title = obj.product_id)
        if not obj.id:
            updated_product.quantity -= obj.quantity
        else:
            updated_product.quantity -= (obj.quantity - Customer_Order_Products.objects.get(id = obj.id).quantity)
        Inventory.save(updated_product)