Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

求助:在原代码中psycopg和cr代表什么?



  • 我知道pscycopg是用来连接PostgreSQL的但在TinyERP中没有找到相关的代码
    import psycopg
    cr是什么意思啊,在代码中也没找到相关的信息
    cr.execute('select inst_type,inst_id,obj_id from inherit where obj_type=%s and obj_id in ('+','.join(map(str,args[0]))+')', (obj,))



  • 我知道pscycopg是用来连接PostgreSQL的但在TinyERP中没有找到相关的代码
    import psycopg
    cr是什么意思啊,在代码中也没找到相关的信息
    cr.execute('select inst_type,inst_id,obj_id from inherit where obj_type=%s and obj_id in ('+','.join(map(str,args[0]))+')', (obj,))



  • cr: cursor



  • cr在代码中没有定义也没有Import,在代码中为什么直接就用了呢?
    例如在tinyerp-server-4.2.3.4binosvorm.py中的
    def _field_create(self, cr):
    cr.execute("SELECT id FROM ir_model WHERE model='%s'" % self._name)
    if not cr.rowcount:
    # reference model in order to have a description of its fonctionnality in custom_report
    cr.execute("INSERT INTO ir_model (model, name, info) VALUES (%s, %s, %s)", (self._name, self._description, self.doc))
    cr.commit()
    谢谢:)



  • cr是外部传入的参数,其类型在函数外部就已经定义了。



  • Server 初始化时.
    会 load_modules ( 在 addons__init__.py) 中定义.

    在 load_modules 中.会产生 cr = db.cursor()

    并传递给 load_module_graph ( 在 addons__init__.py ) 中定义

    在 load_module_graph 中 会产生 MigrationManager 实例
    migrations = migrations = MigrationManager(cr, graph)
    这时, cr 会传递给实例.

    然后在 MigrationManager 实例时,会设置
    self.cr = cr

    另:在 osv.py 中 execute 方法会产生 cr = db.cursor()
    后面的对象基本上都是 osv.osv 的扩展. 自然,也就有 cr 这个了.


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待