我有两个字段,从excel输入数据或在odoo中输入csv。
time_1= fields.Char(string = 'Time 1')
time_2= fields.Char(string = 'Time 2')
result= fields.Float(string = 'Result Time 2 - Time 1') #Need result 06:00
time_1 = 10:00:00, time_2 = 16:00:00(来自外部来源的数据)
如何使用@ api.onchange('time_1','time_2')或@ api.depends('time_1','time_2')
将char转换为time并减去time_2 - time_1并将结果放入结果字段?
答案 0 :(得分:2)
应该是这样,
from datetime import datetime
@api.multi
@api.onchange('time_1', 'time_2')
def onchange_time(self):
for rec in self:
time1 = datetime.strptime(rec.time1, "%Y-%m-%d %H:%M:%S")
time2 = datetime.strptime(rec.time2, "%Y-%m-%d %H:%M:%S")
rec.result = (time2 - time1).seconds / float(60*60)
两个日期时间对象将返回 timedelta 对象的结果 当你对它执行任何算术运算时。 timedelta有 属性虽然会在几秒钟内给你差异,所以你可以转换 几秒钟到几个小时。
然后在视图集
中<field name="result" widget="float_time" />