Odoo中的逆计算——由compute字段的值逆向修改其依赖值
2024-10-20 00:26:41
转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9281406.html
当通过compute属性指定方法,根据依赖值计算得到当前字段值时。一般也要制定这个计算的逆运算——根据当前字段值,改变依赖值。
比如:开始日期+持续时间=结束日期,我们有这个可以得到结束日期。
如果用户指定了开始日期和结束日期,那么持续时间=结束日期-开始日期,实现这个逻辑的方法就是inverse属性值指向的方法。
#定义结束日期字段,结束日期由开始+持续,而设置结束日期,则需要自行计算出持续日期 end_date = fields.Date(string="End Date", store=True, compute='_get_end_date', inverse='_set_end_date') #"获取结束日期"事件的响应函数:计算出结束日期 @api.depends('start_date', 'duration') def _get_end_date(self): for r in self: if not (r.start_date and r.duration): r.end_date = r.start_date continue start = fields.Datetime.from_string(r.start_date) duration = timedelta(days=r.duration, seconds=-1) r.end_date = start + duration #"设置结束日期"事件的响应函数:计算并设置持续时间 def _set_end_date(self): for r in self: if not (r.start_date and r.end_date): continue start_date = fields.Datetime.from_string(r.start_date) end_date = fields.Datetime.from_string(r.end_date) r.duration = (end_date - start_date).days + 1
最新文章
- memcached
- Android网络操作的几种方法
- Excel For Java
- 初始Spring
- Physicals
- iOS push全方位解析(二)【译文】";——生成OpenSSL证书,Provisioning Profile
- BZOJ 1054 [HAOI2008]移动玩具
- [Mugeda HTML5技术教程之4] Studio 概述
- SNS团队第二次站立会议(2017.04.23)
- Omi 拥抱 60FPS 的 Web 动画
- JAVA图书管理系统汇总共27个
- 发送HTTPS请求
- mysql数据表的字段操作
- using 的三种使用方式
- Raw Socket(原始套接字)实现Sniffer(嗅探)
- 报错:TargetException, 非静态方法需要一个目标
- Netty4.0学习笔记系列之二:Handler的执行顺序
- ActiveMQ集群方案
- [转载]latex插入两栏的图形或表格
- SZU1
热门文章
- [javaEE] 控制浏览器缓存资源
- 7、包装类、System、Math、Arrays、大数据运算
- 安装和使用phpstorm
- JavaScript - 收藏集 - 掘金
- C/C++标准有哪些?
- Android深入四大组件(六)Service的启动过程
- python 网络 socket
- php foreach 报 “Cannot create references to elements of a temporary array expression”
- python学习笔记之open函数的用法
- java笔记--匿名内部类和静态内部类的理解和使用