我使用带有小部件“float_time”的浮点字段来显示时间。如何将日期时间转换为浮动以在小部件中正确显示?
我再解释一下我的情况,
我有一个字段字段'start_date',它是日期时间,我希望在“on_change”事件中我在另一个具有小部件“float_time”的float类型字段中设置时间值。
'start_date': fields.datetime('Fecha Inicio' , required = True),
'h_inicio': fields.float('Hora inicio', help="Hora inicio" , required = True),
鉴于:
<field name="start_date" on_change="onchange_f_inicio(start_date)"/>
<field name="h_inicio" widget="float_time"/>
方法 on_change
def onchange_f_inicio(self, cr, uid, ids ,fecha_inicio):
res = {'value':{}}
fecha_ini = datetime.strptime(fecha_inicio, "%Y-%m-%d %H:%M:%S")
user = self.pool.get('res.users').browse(cr, uid, uid)
tz = pytz.timezone(user.tz) if user.tz else pytz.utc
fecha_ini = pytz.utc.localize(fecha_ini).astimezone(tz) # convert start in user's timezone
hora_inicio = "%s.%s" % (str(fecha_ini.hour) , str(fecha_ini.minute))
res['value']['h_inicio'] = round(float(hora_inicio),1)
return res
唯一可行的方法是将日期“start_date”转换为字符串,然后转换为浮点数,作为 on_change 方法返回的值。
这种形式并不认为它是最好的,如果我能帮助创造一个更好的方式来感谢你。
谢谢