跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. [已解决]属性relation,column1,column2

[已解决]属性relation,column1,column2

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

    many2many 关系是通过中间表关联的,

    中间表只有两列,分别是A表的id 和 B表的id,

    relation 对应了中间表的表名,

    如果你不赋值,默认是将两列列名拼起来加上rel后缀,

    但在列名过长的情况下可能会触发postgres 表名过长的问题,

    导致中间表不能生成,

    (postgres 表名不能超过64),

    column1,column2, 你不赋值,默认模型名_id,


    many2many 中间表不存在第三列,

    中间表是个两张表的互相映射关系。


    除非你有业务需求需要往many2many中间表增加第三列,

    那你可以去改框架,

    给中间表增加第三列对应的业务逻辑

    H 1 条回复 最后回复
    0
    • H 离线
      H 离线
      hui
      在 回复了 Siyuan 最后由 编辑
      #3

      @siyuan
      1、中间表数据库应该有记录的吧
      2、模型名是product.template,column1页不应该是product_template_id?

      S 1 条回复 最后回复
      0
      • S 离线
        S 离线
        Siyuan
        在 回复了 hui 最后由 编辑
        #4

        @hui

        1. 中间表数据库肯定有,如果没有那就是模型升级没成功

        2. 如果你是product_template 里面有一个字段和别的表是 many2many关系,

        那么这个字段的many2many 中间表的column1 列名默认:product_template_id,

        H 1 条回复 最后回复
        0
        • H 离线
          H 离线
          hui
          在 回复了 Siyuan 最后由 编辑
          #5

          @siyuan
          1、模块升级是成功的了的
          2、我这个m2m的是product.template跟product.template,按理不是应该column都应该是 product_template_id,上面代码那样写是给的别名吗?

          1 条回复 最后回复
          0
          • H 离线
            H 离线
            hui
            写于 最后由 编辑
            #6
            此回复已被删除!
            1 条回复 最后回复
            0
            • digitalsatoriD 离线
              digitalsatoriD 离线
              digitalsatori 管理员
              写于 最后由 编辑
              #7

              @hui 你这是一个compute字段,并且store=False,系统是不会生成对应的中间表的。

              【上海先安科技】(tony AT openerp.cn)

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

                @digitalsatori
                1、store=False,不生成中间表的话,那我这里写了一个中间表没问题吗?
                2、如果不生成中间表,那他们的对应关系是怎么存储的?

                1 条回复 最后回复
                0
                • digitalsatoriD 离线
                  digitalsatoriD 离线
                  digitalsatori 管理员
                  写于 最后由 编辑
                  #9

                  这个字段的值,是你定义的函数_get_old_part_list算出来的啊

                  【上海先安科技】(tony AT openerp.cn)

                  H 1 条回复 最后回复
                  0
                  • H 离线
                    H 离线
                    hui
                    在 回复了 digitalsatori 最后由 编辑
                    #10

                    @digitalsatori
                    我知道那个字段的值是我算出来的。
                    但是如果没有这个中间表,我还是写了 relation是不是错的了啊?

                    1 条回复 最后回复
                    0
                    • digitalsatoriD 离线
                      digitalsatoriD 离线
                      digitalsatori 管理员
                      写于 最后由 编辑
                      #11

                      想想看,即使有这个中间表,你都根本没有用到,有意义吗?

                      【上海先安科技】(tony AT openerp.cn)

                      H 1 条回复 最后回复
                      0
                      • H 离线
                        H 离线
                        hui
                        在 回复了 digitalsatori 最后由 编辑
                        #12

                        @digitalsatori
                        没意义。

                        这个中间表不存在的,那relation引用一个没有的,column1,column2的值也是没有的,这个也不报错的啊?

                        1 条回复 最后回复
                        0

                        • 登录

                        • 没有帐号? 注册

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