我有一个 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)

我已经验证了以下内容:
  • featuresmyapp 都在 settings.INSTALLED_APPS
  • myapp.management 在 syncdb 运行之前被加载(通过模块级别的打印语句验证)
  • features 应用程序正在由 syncdb 处理,并且它发出 post_syncdb 信号(通过检查 syncdb 的输出与 --verbosity=2 进行验证。
  • 我对另一对应用程序使用完全相同的习语,并且正确调用了该处理程序。我比较了这两个模块,发现调用之间没有相关差异。

  • 但是,从不调用 myapp.management.create_features。我错过了什么?

    最佳答案

    尝试把它放在你的 models.py 中

    关于python - Django post_syncdb 信号处理程序没有被调用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4391358/

    10-12 18:51