0

在 OpenERP 版本 7 中,我需要根据父对象的值在“添加对象”的表单视图中显示或隐藏一个字段。

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

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

如何做到这一点?

4

1 回答 1

1

我之前也有同样的问题。我所做的是在 sale_order_line 中添加一个相关字段并根据该相关字段定义属性。IE; 在销售订单行中,我将字段 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 字段中单击“添加新项目”时,字段 demo_field1 的值将默认加载到 test_field_new,并且我使用字段 test_field_new 定义了属性。

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

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

于 2013-10-31T06:52:29.780 回答