从odoo中的日期计算Odoo Days?
Posted
技术标签:
【中文标题】从odoo中的日期计算Odoo Days?【英文标题】:Odoo Days calculations from date in odoo? 【发布时间】:2021-03-05 13:38:29 【问题描述】:我有这样的场景。 我在 odoo 中有一个开始日期和结束日期。我想找到两个给定日期之间的天数,这些天数需要与其他模型的工作日进行比较。
【问题讨论】:
看一下这个问题***.com/questions/17833176/… 你可以举个例子-github.com/odoo/odoo/blob/14.0/addons/crm/models/… 【参考方案1】:您可以在 python 代码中使用此函数来查找两个日期之间的天数。
from datetime import date
f_date = date(2014, 7, 2)
l_date = date(2014, 7, 11)
delta = l_date - f_date
print(delta.days)
【讨论】:
【参考方案2】: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
【讨论】:
以上是关于从odoo中的日期计算Odoo Days?的主要内容,如果未能解决你的问题,请参考以下文章
我需要根据用户在odoo中选择的月份来获取月份的开始日期和结束日期