在 Django 中一次更新其中一个时,如何反映两个一对多关系实例的变化?

How to reflect changes on both One-To-Many-Relationship instances when updating one of them at once in Django?

我有两个表与 Foreignkey 连接。我在主模型中有一个字段,它的值取决于子实例。

例如,如果我有一个 Library 模型和一个 Book 模型,Book 有一个到 Library 的外键。我们在图书馆模型中有一个字段,它等于图书馆中所有书籍的 "total_price"。每当我增加或减少某本书的数量时,如何更新该字段 "total_price"。

请注意,我必须单独保存每个实例才能获得正确的值。我将书籍作为图书馆内的 TabularInline,因此我更改了数量并保存更改,然后我必须再按一次保存以更改 "total_price" 字段。

为了解决这个问题,我在保存子模型后调用了主模型的保存方法。

class Book(models.Model):
    library = models.Foreignkey(Library, on_delete = models.CASCADE)
    ....
    def save(self, *args, **kwargs):
    self.price = BookPrice(self)
    super(Item, self).save(*args, **kwargs)
    self.library.save()