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

Respuestas a la pregunta(4)

Su respuesta a la pregunta