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

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

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

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

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



  • odoo v9<br />案例:<br />前提:产品已启用多属性,并取消了产品模板根据属性自动创建变体的功能 。<br />目标:新建具体产品(product.product)或者编辑具体产品时,属性值(attribute_value_ids) 的可选值为已选产品模板(product_tmpl_id)添加的属性明细行(attribute_line_ids)中的属性值(value_ids)<br />这样的过滤如何实现?<br /><br />目前尝试过 onchange ,新建的时候是可以,但是保存后,从新编辑,domain 就又不生效了。<br />    @api.onchange('product_tmpl_id')<br />    def product_tmpl_values_onchange(self):<br />        if self.product_tmpl_id:<br />            values = self.env['product.attribute.value']<br />            attribute_line = self.env['product.attribute.line'].search(<br />                [('product_tmpl_id', '=', self.product_tmpl_id.id)])<br />            for i in attribute_line:<br />                values += i.value_ids<br />            return {'domain': {'attribute_value_ids': [('id', 'in', values.ids)]}}<br />        else:<br />            return {'domain': {'attribute_value_ids': [('id', 'in', [])]}}<br /><br />o



  • odoo v9<br />案例:<br />前提:产品已启用多属性,并取消了产品模板根据属性自动创建变体的功能 。<br />目标:新建具体产品(product.product)或者编辑具体产品时,属性值(attribute_value_ids) 的可选值为已选产品模板(product_tmpl_id)添加的属性明细行(attribute_line_ids)中的属性值(value_ids)<br />这样的过滤如何实现?<br /><br />目前尝试过 onchange ,新建的时候是可以,但是保存后,从新编辑,domain 就又不生效了。<br />    @api.onchange('product_tmpl_id')<br />    def product_tmpl_values_onchange(self):<br />        if self.product_tmpl_id:<br />            values = self.env['product.attribute.value']<br />            attribute_line = self.env['product.attribute.line'].search(<br />                [('product_tmpl_id', '=', self.product_tmpl_id.id)])<br />            for i in attribute_line:<br />                values += i.value_ids<br />            return {'domain': {'attribute_value_ids': [('id', 'in', values.ids)]}}<br />        else:<br />            return {'domain': {'attribute_value_ids': [('id', 'in', [])]}}<br /><br />o



  • 在视图上设置字段 domain



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



  • many2many 的domain和one2many是一样的,可以直接用对方表的字段过滤  <field name="share_to_ids" widget="many2many_tags"  domain="[('groups_id','=',%(base.group_sale_salesman)d)]"  (share_to_ids是many2many 到user 的 )<br /><br />论坛里一以前有相似的帖子,好好翻翻看..



  • [quote author=开阖-静静 link=topic=17622.msg32308#msg32308 date=1464168595]<br />many2many 的domain和one2many是一样的,可以直接用对方表的字段过滤  <field name="share_to_ids" widget="many2many_tags"  domain="[('groups_id','=',%(base.group_sale_salesman)d)]"  (share_to_ids是many2many 到user 的 )<br /><br />论坛里一以前有相似的帖子,好好翻翻看..<br />[/quote]<br />的确可以用those model 的字段,问题是,those model 跟 product.template 没关系。<br /><br />具体产品  many2many 属性值<br />具体产品 many2one  产品模板<br />产品模板 one2many 属性明细行<br />属性明细行 many2many 属性值<br /><br />现在就是希望  创建或修改具体产品时,选择 产品模板后, 属性值的可选值是 产品模板中所有属性明细行的所有属性值。



  • 描述好混乱,看起来好费劲.....<br /><br />用fields_view_get方法吧,想怎么过滤就怎么过滤......


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待