跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. 【分享】查找某条记录的id

【分享】查找某条记录的id

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

    根据老肖的pdf教程,导入数据的时候可以指定这一条数据的 id,便于以后导入相关表时 ref 它。在模块开发的时候也有很多时候需要知道menu 或 view的id。以前一直是到原模块的xml文件中去找,效率很低。群里也有很多人问起,今天终于找到了。

    数据库里有个表ir_model_data对应的对象ir.model.data就是用来存储这些字符类型的id的。

    name就是我们要的字符型的 id
    model是这条记录所属的对象名
    res_id是这条记录在它的model所在的数据表里的database id,也就是那个唯一的主键

    那么去哪里得到当前记录的model和res_id呢?
    哈哈,地址栏

    这么有用的表,每次都到数据库里去sql就太笨了吧,好在我们可以给 对象ir.model.data建个菜单,再自定义视图把model和res_id设置为 总是可搜索。
    效果如下:

    注意:根据老肖的描述,只有xml导入的数据才有id,所以并不是所有记录在这里都能找到噢。

    GoodERP -- Odoo China fork

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

      赞.....

      顶.........

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

        好帖,收了

        1 条回复 最后回复
        0
        • L 离线
          L 离线
          linyaohui
          写于 最后由 编辑
          #4

          感谢wif的热情奉献

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

            鱼说没看懂,我来举个例子。

            比如我要导入产品,产品计量单位是必输项,many2one的,整理的数据是字符型,比如 块(英文PCE那个),而CSV文件里你用“块”导入的话应该是不行的,老肖说应该用id,这个id是什么呢?是product_uom_unit

            怎么找到的呢,两个办法,在product模块的product_data.xml文件的第19行。怎么知道在这里呢?凭感觉。。。

            那么不凭感觉怎么找呢?通用的方法就是找ir.model.data这个对象的记录。

            打开计量单位PCE这条记录,看到地址栏里 model=product.uom&id=1

            进入那个咱们自己建的menu,find id

            资源ID输入 1 - 1
            对象输入product.uom

            就找到 product_uom_unit 了

            注意这里对象条件查询它是用的like,所以会找出两条,不过比较一下就知道哪一条是咱们要的了。

            引用的时候不要忘了在id前面加module哦

            GoodERP -- Odoo China fork

            1 条回复 最后回复
            0
            • M 离线
              M 离线
              mihi
              写于 最后由 编辑
              #6

              学习了。这个还是比较重要的。:lol

              1 条回复 最后回复
              0
              • C 离线
                C 离线
                ccdos
                写于 最后由 编辑
                #7

                又学一招

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

                  楼上的挖坟啊。6.1已经在配置菜单下有外部标识符这个子菜单,就是完成这个查找功能的。所以,嘿嘿,你刚学会的这招过期了。

                  GoodERP -- Odoo China fork

                  1 条回复 最后回复
                  0
                  • N 离线
                    N 离线
                    nmglyy
                    写于 最后由 编辑
                    #9

                    好贴,今天才知道,XML_ID与名称及模型的对应关系,,一直觉的很深奥。。。感谢 @重庆-mrshelly告知。

                    也可以通过如下方法查找:
                    设置 --> 技术 --> 序号与标识符 --> External Identifiers

                    1 条回复 最后回复
                    0

                    • 登录

                    • 没有帐号? 注册

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