Python Django库存应用程序,在哪里覆盖保存以进行数量控制?

Python Django库存应用程序,在哪里覆盖保存以进行数量控制?,python,django,django-admin,inventory,inventory-management,Python,Django,Django Admin,Inventory,Inventory Management,我有三种型号: class Book(models.Model): title = models.CharField(max_length=200) price = models.FloatField() quantity = models.IntegerField() class Operation(models.Model): operation_type_choices = ( ('sell', 'Sell'), ('don

我有三种型号:

class Book(models.Model):
    title = models.CharField(max_length=200)
    price = models.FloatField()
    quantity = models.IntegerField()

class Operation(models.Model):
    operation_type_choices = (
        ('sell', 'Sell'),
        ('donation', 'Donation'),
    )
    book = models.ManyToManyField(Book, through = 'BookOperation') 
    operation_type = models.CharField(max_length=50, choices=operation_type_choices)

class BookOperation(models.Model):
    book = models.ForeignKey(Book)
    operation = models.ForeignKey(Operation)
    quantity = models.IntegerField()

我想知道我应该在什么模型中重写save()函数,以便在操作为“销售”时管理,因此book.quantity应该降低,而在“捐赠”时应该升高。

我会在您具有
quantity
属性的模型中执行此操作。
请注意避免覆盖
save()
方法,并使用
post\u save
pre\u save
方法。

虽然建模也可以通过其他方式完成,但我想您选择了对您的需求最有意义的方法

考虑到具体的模型,我假设在进行“操作”时都会使用
Operation
BookOperation
模型。当然,这取决于以后如何构造表单以及相关视图。但是考虑到这一点,它们中的任何一个似乎都足以用于
save()
函数

从外观上看,我肯定不会使用
图书
模型,因为这是您的主模型,不会立即受到“操作”事务的影响