在 的文档中Django
,它指定这是为信号( 、等)models.py
定位回调函数的好地方。post_save
pre_save
这段代码应该放在哪里?
您可以将信号处理和注册代码放在您喜欢的任何地方。但是,您需要确保尽早导入它所在的模块,以便在需要发送任何信号之前注册信号处理。这使您的应用程序的 models.py 成为注册信号处理程序的好地方。
但是,我有大量依赖于信号的业务逻辑,并且在与我的所有模型相同的文件中查看它们变得具有挑战性。
我想将它们移动到另一个文件,但我不知道如何或在哪里可以引用它们。
那么,给定以下文件结构,您能否提供一个示例,说明如何引用包含适当信号的二级(或三级等)文件?
# models.py located in /myapp/some_installed_app/
from django import needed.modules
... # some reference to signals.py?
class SomeModel()
pass
# signals.py located in /myapp/some_installed_app/
from django import needed.things
...
def somefun(sender,**kwargs)
pass
post_save.connect(somefun, sender=SomeModel)