如何为位于 One2Many 字段中的特定字段设置只读字段

How to set readonly filed for a particular field which lies in a One2Many field

我想根据选择字段将字段设置为只读。 但问题是,当我为该特定字段设置只读时,该字段位于 One2Many field.So 下,出现此错误

Error

 Uncaught Error: QWeb2 - template['ListView.rows']: Runtime Error: Error: QWeb2 - template['ListView.row']: Runtime Error: Error: Unknown field od_confirm_state_line in domain [["od_confirm_state_line","=","confirmed"]]

Code

<page String="Landed Cost">
    <field name="cost_line">
    <tree editable="top">
       <field name="od_partner_id"/>
       <field name="od_product_id"/>
       <field name="od_label" attrs="{'readonly':[('od_confirm_state_line','=','confirmed')]}"/> 
    </tree>
    </field>
</page>

这里我想将字段 od_label 设置为只读。

您不能在属性中使用视图定义中不存在的字段,因此如果 od_confirm_state_line 不在视图中,您将得到相同的错误。

因为 attrs 只在客户端执行,所以你需要提供视图中的所有字段

domain 中使用的字段必须在您的视图中定义:

<tree editable="top">
   <field name="od_partner_id"/>
   <field name="od_product_id"/>
   <!-- Add od_confirm_state_line like the following-->
   <field name="od_confirm_state_line"/>
   <field name="od_label" attrs="{'readonly':[('od_confirm_state_line','=','confirmed')]}"/> 
</tree>