odoo14计算属性获取结束时间减开始时间后的总用时
时间: 2023-07-29 11:11:24 浏览: 89
在 Odoo 14 中,可以通过计算属性来实现获取结束时间减开始时间后的总用时。假设有一个模型 `my.model`,其中包含开始时间 `start_time` 和结束时间 `end_time` 两个字段,可以在该模型中添加如下计算属性:
```python
from odoo import models, fields, api
class MyModel(models.Model):
_name = 'my.model'
start_time = fields.Datetime(string='Start Time')
end_time = fields.Datetime(string='End Time')
@api.depends('start_time', 'end_time')
def _compute_duration(self):
for record in self:
if record.start_time and record.end_time:
duration = record.end_time - record.start_time
record.duration = duration.total_seconds() / 60.0
duration = fields.Float(
string='Duration (minutes)', compute='_compute_duration')
```
在上述代码中,使用 `@api.depends` 装饰器来指定计算属性 `duration` 依赖于 `start_time` 和 `end_time` 两个字段,当这两个字段有任何变化时,系统会自动调用 `_compute_duration` 方法重新计算 `duration` 的值。在 `_compute_duration` 方法中,首先判断 `start_time` 和 `end_time` 是否存在,如果存在则计算两者之差,并将结果转换成分钟数赋值给 `duration` 字段。
通过上述代码,就可以在 Odoo 14 中实现获取结束时间减开始时间后的总用时了。
阅读全文