您的最后一个示例可能适用于某些工作:
- 首先,您需要
__init__
上课,而不是models.Model
- 您需要在模型初始化 后 设置属性
- 您需要检查模型是否已保存,否则,每次加载模型时,模型都会还原为可覆盖的费用。
--
class Job(models.Model): veryimportant = models.IntegerField() def get_fee(): return 2 * veryimportantclass Report(models.Model): job = models.ForeignKey(Job) overridableFee = models.DecimalField(max_digits=7, decimal_places=2) def __init__(self, *args, **kwargs): super(Report, self).__init__(*args, **kwargs) if not self.id: self.overridableFee = self.job.get_fee()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)