有沒有辦法查看Django中設置了哪些信號?有沒有辦法列出Django信號?
18
A
回答
9
有一個稱爲 django-debug-toolbar一個Django應用程序,它在所有Django的頂部增加了一個小工具欄服務提供相關頁面的渲染中,後端信息的網頁,如多少查詢被執行了多少時間,他們各拿了,它也打印出信號。我在我的應用程序中不使用信號,所以我從未使用過該功能,但它在那裏。
27
它並沒有真正暴露在文檔中,但Signal只是一個包含在事件上調用的接收器列表的類。您可以手動檢查這個列表:
from django.db.models.signals import *
for signal in [pre_save, pre_init, pre_delete, post_save, post_delete, post_init, post_syncdb]:
# print a List of connected listeners
print signal.receivers
7
我寫了小命令,顯示所有信號聽衆:https://gist.github.com/1264102
你可以修改它,只顯示信號。
0
如果您只想列出特定型號上特定信號的連接接收器,您可以查看_live_receivers
。舉例來說,如果要列出一個型號命名爲MyModel的連接post_save鉤子,你可以這樣做:
from django.db.models.signals import post_save
from models import MyModel
print(post_save._live_receivers(MyModel))
我發現在Django的源代碼,這種方法通過尋找如何has_listeners
作品:https://github.com/django/django/blob/3eb679a86956d9eedf24492f0002de002f7180f5/django/dispatch/dispatcher.py#L153
相關問題
- 1. 有沒有辦法假髮射信號?
- 2. 有沒有辦法找出win32信號量的當前計數?
- 3. django-paypal沒有信號subscr_payment
- 4. 有沒有什麼辦法列出iphone
- 5. 有沒有辦法在dired中列出驅動器號?
- 6. 有沒有辦法將升壓信號直接連接到另一個信號?
- 7. 有沒有辦法在Windows上收聽信號
- 8. 有沒有辦法從插槽中刪除特定的信號
- 9. 有沒有辦法從iPhone獲得信號強度?
- 10. 有沒有辦法知道iOS上WiFI信號的強度
- 11. 有沒有辦法REGEX這個信息。
- 12. 有沒有辦法獲得有關QNetworkAccessManager隊列的信息?
- 13. 有沒有辦法在Python中列出所有可用的驅動器號?
- 14. 有沒有辦法找出iPhone是否通過A-GPS,手機信號塔信號強度或WiFi獲取CLLocation?
- 15. 有沒有辦法導出Firebug HTTPRequest詳細信息?
- 16. 有沒有辦法重新拋出Selenium錯誤信息?
- 17. Django信號m2m_changed沒有觸發
- 18. 爲什麼Django中沒有response_finished信號?
- 19. django-paypal信號沒有觸發
- 20. 有沒有辦法用javascript變量來索引Django/Jinja列表?
- 21. 有沒有辦法讓XCode方括號出現在下一行?
- 22. 有沒有辦法在IIS中列出輸出緩存條目?
- 23. 有沒有辦法通過pika列出rabbitmq中的隊列?
- 24. 有沒有辦法在iso映像中列出所有的rpms?
- 25. 有沒有辦法列出Intellij中項目中的所有類?
- 26. 有沒有辦法找出隊列中有多少元素
- 27. 有沒有辦法列出用戶的所有推文?
- 28. Amazon SimpleDB - 有沒有辦法列出域中的所有屬性?
- 29. 有沒有辦法列出所有的belongs_to關聯?
- 30. 有沒有辦法列出所有綁定到Ember.Object?