Odoo 中文社区

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

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

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

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

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

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

    当需要继承并覆写Odoo的Selection 字段,如何确定新选项的位置

    Odoo 培训
    odoo技术 selection字段
    1
    1
    275
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • digitalsatori
      digitalsatori 管理员 最后由 digitalsatori 编辑

      我们知道Odoo的Selection字段的选项值为包含多个元组的一个列表,其中每个元组包含两个字符串成员,第一个成员为内部保存值,第二个用来界面显示,比如

      class TestModel(model.Model):
          _name = 'test.model'
      
          myselection =  fields.Selection([('a', 'A'), ('b', 'B')], string='MySelection')
      

      当在新的模块里需要继承修改这个Selection字段的选项时,我们可以使用selection_add, 比如:

      class TestModel(model.Model):
          _inherit = 'test.model'
      
          myselection =  fields.Selection(selection_add=[('c', 'C')])
      

      问题是这样的继承得到的结果是[('a', 'A'), ('b', 'B'), ('c', 'C')],新添加的选项在列表的尾端。那有没有办法指定新添加选项在列表中的位置呢?在Odoo13以后实际上我们可以在选项值后面添加由单个成员组成的元组来确认新选项的插入位置,比如上例中:

      selection_add = [('c', 'C'), ('b',)] 
      > result = [('a', 'A'), ('c', 'C'), ('b', 'B')] 
      

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

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