所以我一直试图找出为什么django-notification 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=()
还有许多其他额外的SQL查询(比如最后一个 - 从cities_city中选择)与上面写的notification.queue()没有任何关系。
emit_notices调用send_all()和send_all()调用
send_now([to_user], label, extra_context, on_site, sender)
我没有看到与城市的关系,这是我项目的一个完全不同的应用程序。
然而它有效,但我想弄清楚为什么会发生这种情况。我做错了吗?
干杯
答案 0 :(得分:0)
我敢打赌,这些查询是由通知模板呈现生成的。