我喜欢Greg解决此问题的方法,但我想指出,你可以直接在管理员中执行相同的操作:
我刚刚开始在django项目中实现信号监听器。虽然我了解它们是什么以及如何使用它们。我很难弄清楚我应该把它们放在哪里。django网站上的文档说:
你可以将信号处理和注册代码放在任何你喜欢的位置。但是,你需要确保该模块所在的模块尽早导入,以便在需要发送任何信号之前注册信号处理。这使你的应用程序的models.py成为放置信号处理程序的好地方。
虽然这是一个很好的建议,但是在我的models.py中包含非模型类或方法只会给我带来错误的印象。
那么,存储和注册信号处理程序的最佳实践/规则是什么?
这样,你只需在管理界面内进行注释。并非与你执行的每个查询有关。
我实际上喜欢使它们成为模型本身的类方法。这将所有内容都保留在一个类中,这意味着你不必担心导入任何内容。