Ich habe eine Frage zu Django.
Ich habe ManyToMany Modelle hier
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)
Für 1 erstelltes Warenkorbobjekt kann ich so viele wie neue TransactionDetail-Objekte (das Produkt und die Menge) einfügen. Meine Frage ist. Wie kann ich den Trigger implementieren? Ich möchte, dass bei jeder Erstellung eines Transaktionsdetails der Betrag des Produktbestands durch den Betrag im Transaktionsdetail abgezogen wird.
Ich habe über post_save () gelesen, bin mir aber nicht sicher, wie ich es implementieren soll. vielleicht so etwas
wann:
post_save(TransactionDetail,
Cart) #Cart object where TransactionDetail.cart= Cart.id
Cart.stock -= TransactionDetail.amount