【问题标题】:How to set readonly filed for a particular field which lies in a One2Many field如何为 One2Many 字段中的特定字段设置只读文件
【发布时间】:2018-04-04 12:51:50
【问题描述】:

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

错误

 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"]]

代码

<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 是属于其他模型的选择字段,从当前模型中,您可以通过One2many 字段到达那里。问题是每条 cost line 包含多条记录,每条记录都有自己的状态,所以我的问题是: 1. 如果任何记录被确认或所有记录都被确认,od_label 是否必须是只读的确认的? 2. 我们说的 One2many 领域的技术名称是什么?
  • od_confirm_state_line 属于哪里?!!并且您不能在 attrs 中使用视图定义中不存在的字段,因此如果 od_confirm_state_line 不在视图中,您将收到相同的错误。
  • @forvas :实际上我有一个名为 od_confirm_state_line 的字段位于另一个模型中,od_confirm_sale 是一个相关字段,与 cost_line 处于同一模型中 1)它必须是确认当前记录时只读 2)cost_line
  • @Cherif 与cost_line同型号
  • 是的,因为 attrs 仅在客户端执行,因此您需要在视图中提供所有字段,否则您将遇到该错误

标签: xml odoo odoo-10 readonly


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-09
      相关资源
      最近更新 更多