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によって発行されたシグナルに接続してから run を実行しますが、 N 回呼び出すことになります。Bb.a.calculate()a.calculate()
これをより効率的に実装する方法について何か提案はありますか?
最後の B インスタンスがいつ正常に更新されたのかを判断する方法がわからないため、障害が発生しています。その後、A インスタンスで潜在的に高価な calculate() 関数を実行する必要があります。
これまでの私の最善のアイデアは、「変更済み」フラグをオンにAして、更新が必要なモデルを cron ジョブで取得するAことですが、それがより正確になることを願っています。