Django post_save() 信号的实现
Django post_save() 信号的实现
我有一个关于django的问题。
我这里有一个ManyToMany模型
class Product(models.Model): name = models.CharField(max_length=255) price = models.DecimalField(default=0.0, max_digits=9, decimal_places=2) stock = models.IntegerField(default=0) def __unicode__(self): return self.name class Cart(models.Model): customer = models.ForeignKey(Customer) products = models.ManyToManyField(Product, through='TransactionDetail') t_date = models.DateField(default=datetime.now()) t_sum = models.FloatField(default=0.0) def __unicode__(self): return str(self.id) class TransactionDetail(models.Model): product = models.ForeignKey(Product) cart = models.ForeignKey(Cart) amount = models.IntegerField(default=0)
对于每个创建的cart对象,我可以插入多个新的TransactionDetail对象(包括产品和数量)。我的问题是,我如何实现触发器?我想要的是,每当创建一个TransactionDetail对象时,我希望产品库存的数量减去transactiondetail中的数量。
我已经阅读了关于post_save()的内容,但是不确定如何实现它。
也许可以像这样:
当:
post_save(TransactionDetail, Cart) #Cart对象其中TransactionDetail.cart= Cart.id Cart.stock -= TransactionDetail.amount