odoo14中对开始时间和结束时间做比较判断
时间: 2023-11-14 07:15:29 浏览: 25
在Odoo14中,可以使用`fields.Datetime`字段类型来存储日期和时间信息。比较开始时间和结束时间可以使用Python的比较运算符(如`>`,`>=`,`<`,`<=`,`==`)。
例如,假设我们有一个名为`my_model`的模型,其中包含`start_datetime`和`end_datetime`两个`fields.Datetime`字段。我们可以编写以下方法来比较这两个字段:
```
from odoo import models, fields, api
class MyModel(models.Model):
_name = 'my_model'
start_datetime = fields.Datetime(string='Start Datetime')
end_datetime = fields.Datetime(string='End Datetime')
@api.depends('start_datetime', 'end_datetime')
def _compute_duration(self):
for rec in self:
if rec.start_datetime and rec.end_datetime:
if rec.start_datetime > rec.end_datetime:
raise ValidationError('Start datetime cannot be after end datetime')
else:
duration = rec.end_datetime - rec.start_datetime
rec.duration = duration.total_seconds() / 3600.0
```
在这个例子中,我们定义了一个`_compute_duration`方法,该方法使用Odoo的`api.depends`装饰器来定义其依赖项。在方法中,我们首先检查`start_datetime`和`end_datetime`是否都存在,然后使用比较运算符来比较这两个字段的值。如果`start_datetime`大于`end_datetime`,我们将抛出一个验证错误。否则,我们计算时间差并将其转换为小时数。
请注意,这只是一个简单的示例,您可以根据您的具体需求进行调整。