避免 OpenERP 审计跟踪错误

Iap*_*rim 4 python audit-trail odoo

我想通过安装audittrail 模块来管理OpenERP 用户的活动。
创建一些规则后(定义将监视哪个用户、哪个对象和哪个活动(创建、更新..))。我更新了产品以查看其是否有效。
当我尝试更新产品时,出现系统错误。看到日志,我得到
[2010-08-31 12:53:35,042] 游标未显式关闭
[2010-08-31 12:53:35,043] 游标是在 /home/pilgrim/working/sources/addons/audittrail 创建的/audittrail.py:204

这是导致错误的行
cr = pooler.get_db(db).cursor()
查看 sql_db.py,我得到了评论

def __del__(self):
    if not self.__closed:
        # Oops. 'self' has not been closed explicitly.
        # The cursor will be deleted by the garbage collector,
        # but the database connection is not put back into the connection
        # pool, preventing some operation on the database like dropping it.
        # This can also lead to a server overload.
        msg = "Cursor not closed explicitly\n"  \
              "Cursor was created at %s:%s" % self.__caller
        log(msg, netsvc.LOG_WARNING)
        self.close()
Run Code Online (Sandbox Code Playgroud)

由于我是Python新手,我不知道如何解决这个问题?
有什么提示可以克服这个问题吗?
感谢

pyf*_*unc 5

查看源代码以了解正在发生的事情非常重要。但从您发布的内容来看,前一个光标似乎没有明确关闭。

cr = sqldb.db_connect(dbname).cursor()
.........
cr.close()
cr = None
Run Code Online (Sandbox Code Playgroud)

我建议您破解audittrail.py以找到您在哪里创建光标以及在哪里关闭它们。一个典型的问题是异常处理不正确,导致代码跳过正常关闭。

尝试在有问题的游标操作周围放置 try、 except 和 finally 子句。这应该可以帮助你解决这个问题。