【发布时间】:2016-05-25 15:26:54
【问题描述】:
Django 1.9.
尝试学习信号。在 AppConfig.ready() 的文档中,据说“子类可以覆盖此方法以执行初始化任务,例如注册信号。” (https://docs.djangoproject.com/en/1.9/ref/applications/#django.apps.AppConfig.ready)。
some_app/apps.py
class SomeAppConfig(AppConfig):
name = 'some_app'
def ready(self):
print("Redefined ready method in some_app")
demo_signals/settings.py
INSTALLED_APPS = [
...
"some_app.apps.SomeAppConfig",
]
python manage.py runserver
Redefined ready method in some_app
Redefined ready method in some_app
Performing system checks...
System check identified no issues (0 silenced).
May 25, 2016 - 15:15:58
Django version 1.9.6, using settings 'demo_signals.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
请注意,“redefined ready method in some_app”会打印两次。
你能帮我理解为什么它被调用两次吗?这不是我的错误,为什么注册信号需要两次调用?
【问题讨论】:
-
可能开发服务器正在启动两个单独的线程。如果以
--nothreading开头会发生什么? -
@Daniel Roseman,试过了。再次两次。
-
@Daniel Roseman,我刚刚开始了一个全新的项目。再两次。没有线程没有帮助。
标签: django django-signals