I'm developing an eCommerce in django. 
The issue is about Order and RowOrder computations:

```
class Order(Model):
    STATUS = {
        'NPAI': 'Not paid',
        'PAID': 'Paid',
        'SHIP': 'Shipped',
    }
    status = CharField(max_length=4, choices=STATUS.items(), editable=False, default='NPAI')
    cod = CharField(max_length=30, unique=True, db_index=True, editable=False)

    total_price = DecimalField(max_digits=4, decimal_places=2, default=Decimal('0.00'), editable=False)
    vat = DecimalField(max_digits=4, decimal_places=2, default=Decimal('0.00'), editable=False)
    [...]

class RowOrder(Model):
    article = ForeignKey(Article)
    order = ForeignKey(Order)
    [...]
     def save(self, *args, **kwargs):
        # update order
        with transaction.commit_on_success():
            order_Locked = Order.objects.select_for_update().get(id=self.order.id)
            order_Locked.total_price += self.price
            order_Locked.vat_price += self.price - self.price/(1 + order_Locked.vat/100)
            order_Locked.save()

```

As you can see, I update the values of an **order** *every time a* **roworder** *is saved*. This works well, but now I've to send an order confirm email when the order is created, but if I send the email in Order.save():

```
def save(self, *args, **kwargs):
        if self.status == 'NPAI':
            super(Order, self).save(*args, **kwargs)
            send_order_confirm(self)

```

then, rightly, the self.roworder\_set in that time is empty.
I've chosen a wrong approach or actually is there anything that I can do to achieve my goal? Thank you so much.