Odoo 中文社区

    • 注册
    • 登录
    • 搜索
    • 版块
    • 标签
    • 热门
    • 用户
    • 群组

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

    由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

    本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

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

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

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

    Odoo 开发与实施交流
    4
    6
    5580
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • W
      wangdan_8948 最后由 编辑

      我知道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,))

      1 条回复 最后回复 回复 引用 0
      • O
        oldrev 最后由 编辑

        cr: cursor

        1 条回复 最后回复 回复 引用 0
        • W
          wangdan_8948 最后由 编辑

          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()
          谢谢:)

          1 条回复 最后回复 回复 引用 0
          • W
            ww_great 最后由 编辑

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

            1 条回复 最后回复 回复 引用 0
            • mrshelly
              mrshelly 最后由 编辑

              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 这个了.

              1 条回复 最后回复 回复 引用 0
              • First post
                Last post