[英]Django inventory app, where to override save for quantity control?
我有“三个”模型:
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应该降低,而在“ donation”时应该提高。
我会在具有quantity
属性的模型中执行此操作。 请查看Signals文档,以避免覆盖save()
方法,并使用post_save
或pre_save
方法。
尽管建模也可以通过其他方式完成,但我想您选择了对您的需求最有意义的一种。
给定特定的模型,我假设在进行“操作”时同时使用了Operation
和BookOperation
模型。 当然,这取决于您以后如何构造表单以及相对视图。 但是鉴于此,似乎它们中的任何一个都足以用于save()
函数。
从外观上看,我当然不会使用Book
模型,因为这是您的主模型,并且不会立即受到“操作”事务的影响。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.