我正在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日志系统似乎使用类似的东西。
欢迎任何帮助。提前谢谢!
答案 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...