从 datetime + float on odoo 获取日期时间的方法
the way to get a datetime from datetime + float on odoo
我想通过 session_start
+ duration
了解 session_finish
。 session_start 类型是 date
,持续时间是 float
。
@api.onchange('session_start')
def onchange_session_start(self):
for record in self:
if self.session_start is not None :
self.session_finish = self.session_start + self.duration
如果会话开始是一个日期时间对象,那么您可以使用 timedelta 函数添加持续时间
import datetime
a = datetime.datetime(100,1,1,11,34,59)
b = a + datetime.timedelta(0,3) # days, seconds, then other fields.
如果不是则将数据转换为日期时间
您需要转换持续时间,然后将其添加到 session_start
,如 所示:
class TestModel(models.Model):
_inherit = "test.model"
@api.onchange('session_start')
def onchange_session_start(self):
if self.session_start:
session_start = fields.Datetime.from_string(self.session_start)
interval = datetime.timedelta(seconds=(self.duration * 3600))
self.session_finish = fields.Datetime.to_string(session_start + interval)
session_start = fields.Datetime("Session start")
duration = fields.Float("Duration")
session_finish = fields.Datetime("Session end")
我想通过 session_start
+ duration
了解 session_finish
。 session_start 类型是 date
,持续时间是 float
。
@api.onchange('session_start')
def onchange_session_start(self):
for record in self:
if self.session_start is not None :
self.session_finish = self.session_start + self.duration
如果会话开始是一个日期时间对象,那么您可以使用 timedelta 函数添加持续时间
import datetime
a = datetime.datetime(100,1,1,11,34,59)
b = a + datetime.timedelta(0,3) # days, seconds, then other fields.
如果不是则将数据转换为日期时间
您需要转换持续时间,然后将其添加到 session_start
,如
class TestModel(models.Model):
_inherit = "test.model"
@api.onchange('session_start')
def onchange_session_start(self):
if self.session_start:
session_start = fields.Datetime.from_string(self.session_start)
interval = datetime.timedelta(seconds=(self.duration * 3600))
self.session_finish = fields.Datetime.to_string(session_start + interval)
session_start = fields.Datetime("Session start")
duration = fields.Float("Duration")
session_finish = fields.Datetime("Session end")