我有一个one2many字段(product_pricelist_item_ids)类型的product.pricelist.item
使用在product.template
的形式视图
我试过了:
invisible = "context.get ('product_variants_without', False)"
在父字段中传递上下文:
<field name = "product_pricelist_item_ids" widget = "one2many" context = "{'product_variants_without': product_variants_without}">
但它不能隐藏你!
我试过了:
attrs = "{'required': [('applied_on', '=', '0_product_variant')], 'invisible': [('product_variants_without', '=', True)]}"
:
attrs = "{'required': [('applied_on', '=', '0_product_variant')], 'invisible': [('product_variants_without', '=', [])]}"
我也读到你只能使用invisible="context.get...
隐藏列,但上下文不适合我,因为我没有得到任何信息,任何建议或指南?代码的xml:
<field name="product_pricelist_item_ids" widget="one2many" context="{'product_variants_without': product_variants_without}">
<tree string="Descuentos" editable="bottom" multi_edit="1" >
<field name="product_id"
groups="product.group_product_variant"
invisible="context.get('product_variants_without', False)" //I don't have the context
readonly="context.get('active_model')=='product.product'"
attrs="{'required': [('applied_on', '=', '0_product_variant')], 'invisible': [('product_variants_without', '=', True)]}" //not work
domain="['|', '|',
('id', '=', context.get('default_product_id', 0)),
('product_tmpl_id', '=', parent.id),
('categ_id', '=', context.get('default_categ_id', 0)), '|', ('company_id', '=', company_id), ('company_id', '=', False)
]"
options="{'no_create_edit':1, 'no_open': 1, 'no_create': True}"
/>
</tree>
</field>
您必须从Actions(从任何级别)传递context
,然后您获得该字段的上下文,它将基于值执行,
例子——行动——销售团队
<record id="sales_team.crm_team_salesteams_act" model="ir.actions.act_window">
<field name="context">{'in_sales_app': True}</field><!-- Context is Pass here from Action-->
</record>
从这里传递上下文,所以你可以尝试相同的context
product_variants_without从产品动作和内部的表单视图,你有o2m fields
,所以得到上下文和隐藏/显示。
<field name="product_pricelist_item_ids" invisible="context.get('product_variants_without', True)"/>