次のようなハンドラー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 が実行される前にロードされます (モジュール レベルで print ステートメントを介して確認されます)。features
アプリは によって処理されておりsyncdb
、post_syncdb
信号を発信しています (syncdb
の出力を--verbosity=2
.- 別のアプリのペアにまったく同じイディオムを使用していますが、そのハンドラーは正しく呼び出されます。2 つのモジュールを比較しましたが、呼び出し間に関連する違いは見つかりませんでした。
ただし、myapp.management.create_features
呼び出されることはありません。私は何が欠けていますか?