在OpenERP中,如何从其父(Many2One对象)中显示或隐藏基于域的字段

时间:2013-10-30 12:17:58

标签: openerp

在OpenERP版本7中,我需要在"添加对象"的表单视图中显示或隐藏字段。基于父对象的值。

例如,我在sale_order中有一个字段demo_field1。当我创建销售订单行时,我不想显示该字段" th_weight"如果销售订单的demo_field1大于200。

使用attrs =" {'隐身':[(' demo_field','>',' 200' )]}"或attrs =" {'隐形':[(' order_id.demo_field','>',' 200') ]}"显示域中的无效字段

如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

之前我也遇到过同样的问题。我所做的是在sale_order_line中添加一个相关字段,并根据该相关字段定义attriute。即; 在销售订单行中,我将字段demo_field1的相关字段定义为:

'test_field_new': fields.related('order_id', 'client_order_ref', string="Test Field", type="float")

但相关字段仅在保存记录时加载。所以我从xml文件传递了test_field_new字段的默认值:

<field name="order_line" context="{'default_test_field_new': demo_field1}"/>

这样当我点击one2many字段中的“Add new item”时,默认情况下会将demo_field1字段的值加载到test_field_new,并使用test_field_new字段定义属性。

<field name="price_unit" attrs="{'invisible': [('test_field_new', '&gt;', 200)]}"/>

我不确定这是一个干净的方法......