所以我一直在尝试弄清楚为什么django通知emit_notices打印出多个额外的查询,而这些查询与我的通知队列没有任何关系
我在解释器中运行:
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=()还有其他许多额外的cities_city查询(比如最后一个-- select from sql ),它们与上面编写的notification.queue()没有任何关系。
emit_notices调用send_all()和send_all()调用
send_now([to_user], label, extra_context, on_site, sender)我看不到与城市的关系,这是我的项目的一个完全不同的应用程序。
不管它如何工作,但我想弄清楚为什么会发生这种情况。我做错了什么吗?
干杯
发布于 2012-04-02 23:15:08
我打赌这些查询是由通知模板渲染生成的。
https://stackoverflow.com/questions/9978679
复制相似问题