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()
函数
从外观上看,我肯定不会使用图书
模型,因为这是您的主模型,不会立即受到“操作”事务的影响