2019-12-05odoo13学习总结

onchange方法的改写和实现功能

为了对视图中的数值型字段进行非负校验,使用了onchange的装饰器,但是由于字段过多导致写了好多的onchange,代码极其冗余,后来采用改写onchange的方法来实现简单的检验


图1

简单解释一下几个参数的内容:

values:当前状态下所获取到的记录的值

field_name:状态改变的字段,在odoo中加载页面时也是会调用onchange,所以此时的field_name是包含你加载出来的视图中的全部字段;而当你修改某个字段后,field_name就是你修改的字段。

field_onchange:给字段一个onchange值,字段状态改变后其onchange值也会改变

接下来就是实现的原理:将你所需要检验的字段写在一个列表里,用field_name进行判断,满足条件再执行值的判断。改方法会有几个可使用的返回值,如value、warning、result等值。由于自身理解不深,就不误导了。

注:为了在修改值时触发该方法,因此定义了一个api.onchange(),将需要校验的字段写在里面,并且定义了一个空函数,但是这样的写法应该是不太准确的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容