2012-04-02 52 views
0

所以我一直在試圖找出爲什麼Django的通知emit_notices打印出的是不和我的通知排隊django-notification emit_notices額外的sql查詢?

我在解釋器中運行做任何多額外查詢:

notification.queue([to_user], "new_msg", {"from_user": from_user}, sender=from_user) 

然後

python manage.py emit_notices 

------------------------------------------------------------------------ 
acquiring lock... 
acquired. 
(0.001) SELECT `notification_noticequeuebatch`.`id`, `notification_noticequeuebatch`.`pickled_data` FROM `notification_noticequeuebatch`; args=() 
(0.001) SELECT `auth_user`.`id`, `auth_user`.`username`, `auth_user`.`first_name`, `auth_user`.`last_name`, `auth_user`.`email`, `auth_user`.`password`, `auth_user`.`is_staff`, `auth_user`.`is_active`, `auth_user`.`is_superuser`, `auth_user`.`last_login`, `auth_user`.`date_joined` FROM `auth_user` WHERE `auth_user`.`id` = 3 ; args=(3,) 
emitting notice new_msg to userTest 
(0.000) SELECT `notification_noticetype`.`id`, `notification_noticetype`.`label`, `notification_noticetype`.`display`, `notification_noticetype`.`description`, `notification_noticetype`.`default` FROM `notification_noticetype` WHERE `notification_noticetype`.`label` = new_msg ; args=('new_msg',) 
(0.000) SELECT `django_site`.`id`, `django_site`.`domain`, `django_site`.`name` FROM `django_site` WHERE `django_site`.`id` = 1 ; args=(1,) 
(0.001) SELECT `cities_city`.`id`, `cities_city`.`name` FROM `cities_city`; args=() 

和許多其他額外的SQL查詢(如最後一個 - 從cities_city選擇),這不有什麼用notification.queue()上面寫的。

emit_notices調用send_all()和send_all()調用

send_now([to_user], label, extra_context, on_site, sender) 

我不明白這是我的項目的一個完全不同的應用程序與城市的關係。

然而,它的工作原理,但我想弄清楚爲什麼會發生這種情況。難道我做錯了什麼?

乾杯

回答

0

我敢打賭,這些查詢是由通知模板渲染生成的。

+0

我也這麼想過。我從模板中刪除了{{帶花括號的所有內容}} ...仍在查詢。如果這是你所說的話。 – marlboro 2012-04-02 15:38:57

+0

{%%}呢?從模板中刪除**所有**以確保。 – jpic 2012-04-02 15:52:17

+0

我刪除了該死的東西它仍然發出默認的一個..我截斷了默認的一個從site-packages/djang_notification和額外的查詢仍然被打印出來......認爲我會去一個全新的安裝,看看如何去 – marlboro 2012-04-02 16:01:03