如何仅在odoo中从日期时间字段的视图设置时间?

时间:2019-07-26 15:52:49

标签: python odoo odoo-10

我正在使用SMS服务器的datetime字段。我希望SMS总是在当前日期发送,但是我希望用户只能从视图中更改时间。

我正在使用datetime字段,该字段将用于将请求发布到sms服务器,并且使用float字段表示时间,该字段将出现在视图中。我要从小时和分钟的浮动字段的视图中获取值,并将其传递给datetime字段以设置时间。即我想用delivery_time字段中的值替换replace方法中的小时和分钟参数的硬编码值。

import datetime as dt

class SmsTemplate(models.Model):

    _name = "sms.template"
    delivery_time = fields.Float(string='Time')
    delivery_datetime = fields.Datetime(default=timezone('Asia/Baghdad').localize(dt.datetime.today()).replace(hour=1,minute=20))


<field name="delivery_time" widget="float_time"/>

1 个答案:

答案 0 :(得分:0)

您几乎拥有了它。在这种情况下,请添加一个取决于delivery_time字段的方法,该方法在更改后会更新delivery_datetime字段。

@api.multi
@api.onchange('delivery_time')
def _update_datetime(self):
    for template in self:
        template.delivery_datetime = template.delivery_datetime + datetime.timedelta(hours=template.delivery_time)

上面的代码应为您提供帮助。