モデルの 1 つが保存されているときにMyModel
、フィールドをチェックして、他のモデルで同じ変更をトリガーしたい状況があります。some_key.
コードは正常に動作しますが、シグナルを再帰的に呼び出します。その結果、CPU/DB/API 呼び出しを無駄にしています。私は基本的に信号をバイパスしたいのですが、.save().
提案はありますか?
class MyModel(models.Model):
#bah
some_field = #
some_key = #
#in package code __init__.py
@receiver(models_.post_save_for, sender=MyModel)
def my_model_post_processing(sender, **kwargs):
# do some unrelated logic...
logic = 'fun! '
#if something has changed... update any other field with the same id
cascade_update = MyModel.exclude(id=sender.id).filter(some_key=sender.some_key)
for c in cascade_update:
c.some_field = sender.some_field
c.save()