我有一个 myapp/management/__init__.py
正在注册 post_syncdb
像这样的处理程序:
from django.db.models import signals
from features import models as features
def create_features(app, created_models, verbosity, **kwargs):
print "Creating features!"
# Do stuff...
signals.post_syncdb.connect(create_features, sender=features)
我已经验证了以下内容:
- 两者都是
features
和 myapp
在 settings.INSTALLED_APPS
-
myapp.management
在 syncdb 运行之前加载(通过模块级别的打印语句验证)
features
应用程序正在被 syncdb
处理, 它发出一个 post_syncdb
信号(通过使用 syncdb
检查 --verbosity=2
的输出来验证。
- 我对另一对应用程序使用了完全相同的习惯用法,并且正确调用了该处理程序。我比较了这两个模块,发现调用之间没有相关差异。
然而,myapp.management.create_features
永远不会被调用。我错过了什么?
我是一名优秀的程序员,十分优秀!