我有一个myapp/management/__init__.py
被注册post_syncdb
处理,像这样:Django 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
永远不会被调用。我错过了什么?
这个问题是从2010年。请参阅这里的解决方案在2016年有效:http://stackoverflow.com/a/32446857/633961 – guettli 2016-10-19 09:57:31