我在checkbox上使用了Onchange方法,并将其行为设置为在更改checkbox的状态时删除字段值。Onchange方法在更改checkbox的状态时触发,工作正常。但当我编辑表单视图并保存更改时,该字段先前保存的数据在通过Onchange方法更改字段数据后仍然会出现,而应该通过Onchange方法清除。 这是我在复选框中使用的onchange方法,用于删除其不同状态下的字段值:
@api.onchange('is_military')
def onchange_is_military_checked(self):
if self.is_military:
self.unit_identificatin_code_id = False
else:
self.organization = False
它在create状态下可以正常工作,但是当我编辑表单时,它也可以在编辑模式下工作,但是当我保存表单时,该字段的先前值出现在视图中,在编辑模式下,这个值被Onchange方法设置为False(null)。在
@api.onchange
方法在窗体视图级别工作,每当在编辑模式下更改某个字段值时,该字段的onchange
方法被触发,其他一些字段值可以在该函数中更改。但是如果在onachange
方法中更改的字段在表单视图中是readonly/invisible
,例如在本例中是unit_identificatin_code_id, organization
,保存表单实际上不会将更改保存到该字段。在这种情况下有一个简单的解决方法,在这些字段上使用属性force_save = 1
,以确保即使表单视图中的这个字段是readonly/invisible
,对这个字段的任何更改都必须保存在数据库中。在显然,这个功能是在odoo版本11中添加的,之前版本模块可以从OCA获得以绕过只读限制。对于odoo版本9,请检查module。在
相关问题 更多 >
编程相关推荐