Odoo onchange 方法不在只读字段中保存值
Odoo onchange method is not saving values in readonly fields
在我看来,我有一个布尔字段 (chk_valido) 和另外两个字段。当布尔字段设置为 True 时,我希望这些字段获取当前用户的值和当前日期。使用此代码,字段正在获取值,但是当我单击 "Save" 按钮时,这些值消失了。是什么导致了这些问题?我怎样才能保存这些值? "user_valido" 和 "fecha_validaciongabinete" 在视图中设置为 readoly
chk_valido = fields.Boolean(string='Está validado')
user_valido = fields.Many2one('res.users', string='Usuario valido')
fecha_validaciongabinete = fields.Datetime(string='Fecha Validacion gabinete')
@api.onchange('chk_valido')
def _onchange_chk_valido(self):
if self.chk_valido:
self.fecha_validaciongabinete=fields.Datetime.today()
self.user_valido= self.env.user
else:
self.fecha_validaciongabinete=""
self.user_valido=False
我找到了一个解决方案:将 force_save="1" 添加到视图中的只读字段。我会是这样的:
<field name="user_valido" readonly="1" force_save="1"/>
<field name="fecha_validaciongabinete" readonly="1" force_save="1"/>
在我看来,我有一个布尔字段 (chk_valido) 和另外两个字段。当布尔字段设置为 True 时,我希望这些字段获取当前用户的值和当前日期。使用此代码,字段正在获取值,但是当我单击 "Save" 按钮时,这些值消失了。是什么导致了这些问题?我怎样才能保存这些值? "user_valido" 和 "fecha_validaciongabinete" 在视图中设置为 readoly
chk_valido = fields.Boolean(string='Está validado')
user_valido = fields.Many2one('res.users', string='Usuario valido')
fecha_validaciongabinete = fields.Datetime(string='Fecha Validacion gabinete')
@api.onchange('chk_valido')
def _onchange_chk_valido(self):
if self.chk_valido:
self.fecha_validaciongabinete=fields.Datetime.today()
self.user_valido= self.env.user
else:
self.fecha_validaciongabinete=""
self.user_valido=False
我找到了一个解决方案:将 force_save="1" 添加到视图中的只读字段。我会是这样的:
<field name="user_valido" readonly="1" force_save="1"/>
<field name="fecha_validaciongabinete" readonly="1" force_save="1"/>