在OpenERP版本7中,我需要在"添加对象"的表单视图中显示或隐藏字段。基于父对象的值。
例如,我在sale_order中有一个字段demo_field1。当我创建销售订单行时,我不想显示该字段" th_weight"如果销售订单的demo_field1大于200。
使用attrs =" {'隐身':[(' demo_field','>',' 200' )]}"或attrs =" {'隐形':[(' order_id.demo_field','>',' 200') ]}"显示域中的无效字段。
如何实现这一目标?
答案 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', '>', 200)]}"/>
我不确定这是一个干净的方法......