如何解决从odoo中的日期计算Odoo天数?
我有一个这样的场景。 我在odoo中有一个开始日期和结束日期。我想找到两个给定日期之间的天数,这些天数需要与其他模型的工作日进行比较。
解决方法
您可以在 python 代码中使用此函数来查找两个日期之间的天数。
from datetime import date
f_date = date(2014,7,2)
l_date = date(2014,11)
delta = l_date - f_date
print(delta.days)
,
Bhoomi 的回答为您提供了使用纯 python 最简单的方法。
我只是想对此进行一些扩展,并向您展示专门使用 Odoo 字段的方法。如果您在一个模型上有 2 个 fields.Date
或 fields.Datetime
字段,那么添加另一个字段来计算两者之间的天数可能是最简单的。
from odoo import api,fields,models
class MyClass(models.Model):
_name = "my.class"
start = fields.Date()
stop = fields.Date()
days_until = fields.Integer(
compute="_compute_days_until",store=True
)
@api.depends("start","stop")
def _compute_days_until(self):
for record in self:
if record.start and record.stop:
record.days_until = (record.stop - self.record).days
else:
record.days_until = 0
根据您的 Odoo 版本,这些示例中的 start
和 stop
值可能是字符串或实际的 datetime.date
对象。在旧版本的 Odoo 中,我相信它们是字符串。
但如果您遇到这种情况,Odoo 有一个帮手:
from odoo import fields
fields.Date.from_string()
因此您的计算可能需要看起来更像:
record.days_until = (fields.Date.from_string(record.stop) - fields.Date.from_string(record.start)).days
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。