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 次。B
b.a.calculate()
a.calculate()
有人对如何更有效地实施这一点有任何建议吗?
我遇到了障碍,因为我不确定如何确定最后一个 B 实例何时成功更新,之后我希望 A 实例运行其可能昂贵的 calculate() 函数。
到目前为止,我最好的想法可能是打开一个“已更改”的标志,A
并让一个 cron 工作来确定哪些A
模型需要更新,但我希望它可以更准确。