我的记录无法保存在 openerp 上

My record can't be saved on openerp

我有一个字段,我把它设为只读,当我点击保存时,该字段似乎是空的,当我删除只读选项时它工作正常,但我需要我的字段只读。

在XML中:

<group col="2">
  <field name="st_id" on_change="onchange_stu(st_id)/>
   <field name="standard_id"   readonly="1"/>
   <field name="division_id"   readonly="1"/>
   <field name="medium_id"    readonly="1"/>
</group>

当您将任何字段设置为只读=“1”时,它不会传递给任何 ORM 方法进行操作,因为它是只读的,所以它不再可用于执行此类操作,因此该字段的目的只是显示以可变形式出现在屏幕上。

但是 odoo 应用程序中提供了替代解决方案, Access readonly in ORM methods

只读字段仅用于提供信息,因此在持久化记录时它们不会被 OpenERP 客户端保存,这是一个已知的限制。

有许多解决方法可以实现这一点(例如,使用第二个不可见字段来传输实际值),但最好完全避免这些情况。根据经验,尝试只对以下内容使用只读标志:

  • 功能字段(无论如何都是默认值)
  • 由企业更改的字段 logic/workflow 而不是 UI(通常是州字段)
  • 字段是 disabled/ignored

通过 on_change 调用更新它们仍然没问题,但不要依赖这种机制来存储值。