Django post_save () implementación de señal
Tengo una pregunta sobre django.
Tengo muchos modelos de muchos aquí
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)
Para 1 objeto de carrito creado, puedo insertar tantos como nuevo objeto TransactionDetail (el producto y la cantidad). Mi pregunta es. ¿Cómo puedo implementar el disparador? Lo que quiero es que cada vez que se crea un detalle de Transacción, quiero que la cantidad del stock del producto se resta por la cantidad en la transacción detallada.
He leído sobre post_save () pero no estoy seguro de cómo implementarlo. tal vez algo como esto
when: post_save (TransactionDetail, Cart) #Cart objeto donde TransactionDetail.cart = Cart.id
Cart.stock -= TransactionDetail.amount