在django中是否有信号或类似于“pre_select”的信号?

时间:2011-04-04 13:50:21

标签: django django-models django-signals

我正在django中创建一个系统,每次在数据库上执行SQL“select”查询时,调用一个信号真的很有帮助。换句话说,有没有人知道是否有像“pre_select”或“post_select”信号方法的东西?

我在django文档中找到了“connection_created”信号,但是找不到任何关于如何使用它的线索,更少关于访问调用它的模型。官方文档只是说它存在但不提供简单的使用示例... = /

编辑: connection_created只在创建连接时起作用(名称如何),所以,我仍然没有解决方案= /。

我想要的一个例子就是在不同的对象上执行这些查询:

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

因此,一个函数被称为在每个查询被发送到数据库之前从它们接收数据,以便威胁数据,日志等。 我想在django中存在一些类似于django的功能,因为django日志系统似乎使用类似的东西。

欢迎任何帮助。提前谢谢!

1 个答案:

答案 0 :(得分: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...