2012-04-02 43 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