在另一个模型中发生操作时更新 Django 模型字段

问题描述 投票:0回答:2

我想在模型实例 A 中进行更改,当第二个模型实例 B 被保存、更新或删除。 所有模型都在同一个 Django 应用程序中。 最佳方法是什么?

  1. 我应该使用信号吗?
  2. 覆盖默认方法[保存、更新、删除]?
  3. 还有什么吗?

Django 文档警告:

如果可能,您应该选择直接调用处理代码,而不是通过信号进行调度。

有人可以详细解释一下这个说法吗?

python django model signals
2个回答
0
投票

信号处理程序对性能的影响当然取决于它们的功能。但您应该意识到,当信号被触发时,它们是同步执行的,因此,如果处理程序中正在进行大量操作(例如大量数据库调用),则执行将被延迟。


0
投票

我也有同样的问题。

每当另一个模型发生变化时,更新模型中的数据的最佳实践是什么?现在我仍在使用信号功能

那么您有做到这一点的最佳实践吗? @sterios

© www.soinside.com 2019 - 2024. All rights reserved.