οnchange相当于前端js函数,可以实现前端实时更新以及修改验证
onchange机制:不需要保存数据到数据库就可以实时更新用户界面上的显示。
@api.onchange('监听的字段', '监听的字段'。。。)
def _onchange_受影响的字段(self):
# set auto-changing field
self.受影响的字段 = 根据监听字段计算出受影响字段的值
也可以监控某字段值的变化,如果异常则报错:
@api.onchange('监听的字段')
def _verify_监听字段(self):
if 监听字段值异常:
return {
'warning': {
'title': "异常类型",
'message': "具体异常信息",
},
}
@api.onchange('jgrq') def _onchange_zzhsj(self): try: rq = self.jgrq.strip() self.zzhsj = datetime.datetime.strftime(datetime.datetime.now() + datetime.timedelta(days=int(rq)), '%Y-%m-%d %H:%m:%s') print(rq) except: UserError('相隔日期天数有误')