0

我正在 django 中创建一个系统,每次在数据库上执行 SQL“选择”查询时调用一个信号会非常有帮助。换句话说,有谁知道是否有类似“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 日志系统似乎使用类似的东西。

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

4

1 回答 1

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...
于 2013-02-19T09:44:52.663 回答