跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. Many2many 字段下拉框显示数据的过滤

Many2many 字段下拉框显示数据的过滤

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

    odoo v9
    案例:
    前提:产品已启用多属性,并取消了产品模板根据属性自动创建变体的功能 。
    目标:新建具体产品(product.product)或者编辑具体产品时,属性值(attribute_value_ids) 的可选值为已选产品模板(product_tmpl_id)添加的属性明细行(attribute_line_ids)中的属性值(value_ids)
    这样的过滤如何实现?

    目前尝试过 onchange ,新建的时候是可以,但是保存后,从新编辑,domain 就又不生效了。
        @api.onchange('product_tmpl_id')
        def product_tmpl_values_onchange(self):
            if self.product_tmpl_id:
                values = self.env['product.attribute.value']
                attribute_line = self.env['product.attribute.line'].search(
                    [('product_tmpl_id', '=', self.product_tmpl_id.id)])
                for i in attribute_line:
                    values += i.value_ids
                return {'domain': {'attribute_value_ids': [('id', 'in', values.ids)]}}
            else:
                return {'domain': {'attribute_value_ids': [('id', 'in', [])]}}

    o

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

      在视图上设置字段 domain

      1 条回复 最后回复
      0
      • 蚊 离线
        蚊 离线
        蚊子向前冲
        写于 最后由 编辑
        #3

        [quote author=mrshelly link=topic=17622.msg32295#msg32295 date=1464052045]
        在视图上设置字段 domain
        [/quote]
        我的理解只能通过id来过滤了。但是 值 没法写, product template 跟属性值没有直接关系。
        domain = [('id', 'in', [])], value 不知道怎么写。

        product.template one2many --> attribute.line  many2many --> attribute.value

        product.product  many2many --> attribute.value
                                many2one  --> product.template

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

          many2many 的domain和one2many是一样的,可以直接用对方表的字段过滤  <field name="share_to_ids" widget="many2many_tags"  domain="[('groups_id','=',%(base.group_sale_salesman)d)]"  (share_to_ids是many2many 到user 的 )

          论坛里一以前有相似的帖子,好好翻翻看..

          1 条回复 最后回复
          0
          • 蚊 离线
            蚊 离线
            蚊子向前冲
            写于 最后由 编辑
            #5

            [quote author=开阖-静静 link=topic=17622.msg32308#msg32308 date=1464168595]
            many2many 的domain和one2many是一样的,可以直接用对方表的字段过滤  <field name="share_to_ids" widget="many2many_tags"  domain="[('groups_id','=',%(base.group_sale_salesman)d)]"  (share_to_ids是many2many 到user 的 )

            论坛里一以前有相似的帖子,好好翻翻看..
            [/quote]
            的确可以用those model 的字段,问题是,those model 跟 product.template 没关系。

            具体产品  many2many 属性值
            具体产品 many2one  产品模板
            产品模板 one2many 属性明细行
            属性明细行 many2many 属性值

            现在就是希望  创建或修改具体产品时,选择 产品模板后, 属性值的可选值是 产品模板中所有属性明细行的所有属性值。

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

              描述好混乱,看起来好费劲.....

              用fields_view_get方法吧,想怎么过滤就怎么过滤......

              1 条回复 最后回复
              0

              • 登录

              • 没有帐号? 注册

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