跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. 求助:在原代码中psycopg和cr代表什么?

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

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
6 帖子 4 发布者 5.9k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • W 离线
    W 离线
    wangdan_8948
    写于 最后由 编辑
    #1

    我知道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 离线
      O 离线
      oldrev
      写于 最后由 编辑
      #2

      cr: cursor

      1 条回复 最后回复
      0
      • W 离线
        W 离线
        wangdan_8948
        写于 最后由 编辑
        #3

        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 离线
          W 离线
          ww_great
          写于 最后由 编辑
          #4

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

          1 条回复 最后回复
          0
          • mrshellyM 离线
            mrshellyM 离线
            mrshelly
            写于 最后由 编辑
            #5

            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

            • 登录

            • 没有帐号? 注册

            • 登录或注册以进行搜索。
            • 第一个帖子
              最后一个帖子
            0
            • 版块
            • 标签
            • 热门
            • 用户
            • 群组