class A(models.Model):
def calculate(self):
# calculate some field based on all self.b_set instances
class B(models.Model):
a = models.ForeignKey(A)
我想保存一个实例B以使函数触发A,但有效。
一个简单的实现是连接实例post_save发出的信号然后运行,但它会调用N 次。Bb.a.calculate()a.calculate()
有人对如何更有效地实施这一点有任何建议吗?
我遇到了障碍,因为我不确定如何确定最后一个 B 实例何时成功更新,之后我希望 A 实例运行其可能昂贵的 calculate() 函数。
到目前为止,我最好的想法可能是打开一个“已更改”的标志,A并让一个 cron 工作来确定哪些A模型需要更新,但我希望它可以更准确。