2011-04-04 74 views
0

我創建在Django的系統,它會非常有幫助的被稱爲每次SQL「中選擇」查詢數據庫上進行時間信號。換句話說,沒有人知道是否有一些像「pre_select」或「post_select」信號的方法?是否有信號或任何類似在Django一個「pre_select」?

我發現Django文檔「connection_created」的信號,但無法找到如何使用它,少考慮訪問調用它的模型任何線索。官方文檔只是說它存在,但不給出一個簡單的使用示例... =/

編輯: connection_created正常工作時創建連接(它的名稱如何說),所以,我仍然沒有解決方案= /。

什麼,我想應該是這樣的查詢在不同的對象執行的例子:

ExampleObject1.objects.filter(attribute=somevalue) 
ExampleObject2.objects.filter(attribute=somevalue) 
ExampleObject3.objects.filter(attribute=somevalue) 

因此,在函數被調用從每個接收數據他們之前才能被髮送到數據庫的每個查詢對威脅數據,日誌等 我想象的,因爲Django的日誌系統似乎都使用的東西存在一樣,在Django的一些功能。

任何幫助,歡迎。提前致謝!

+2

請提供更多的信息,哪些「選擇」這是關於和你想達到什麼! – 2011-04-04 14:11:50

+0

我編輯它。現在可以理解嗎? ;) – 2011-04-05 12:06:33

回答

1

http://dabapps.com/blog/logging-sql-queries-django-13/

這不是在信號的形式,但它可以讓你追蹤所有查詢。跟蹤特定的選擇應該可以通過提供定製的日誌處理程序來實現。

import logging 
l = logging.getLogger('django.db.backends') 
l.setLevel(logging.DEBUG) 
l.addHandler(logging.StreamHandler()) 

#make your queries now... 
+0

謝謝!對不起,花了這麼長時間來回答,我最近很忙。 = / – 2013-09-20 19:08:34

相關問題