我有一個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