在odoo 9中获取当前日期时间

时间:2017-02-08 07:37:45

标签: openerp odoo-9

默认情况下如何获取当前日期时间和当前日期时间+ 1小时?

约会我使用以下示例:

defaults = {
                 'start': fields.Date.today(),
                 'finish': fields.Date.today(),
}

3 个答案:

答案 0 :(得分:1)

尝试使用以下代码:

from datetime import datetime, timedelta

defaults = {
    'start': datetime.now(),
    'finish': datetime.now() + timedelta(hours=1),
}

您的字段声明将开始, 完成作为 datetime 数据类型。

答案 1 :(得分:1)

并遵循" new"的解决方案。 API,我建议您使用,因为您标记了Odoo-9:

from datetime import datetime, timedelta

from openerp import models, fields, api
# from odoo import models, fields, api  # for Odoo 10+


class MyClass(models.Model):
    _name = "my.class"

    start = fields.Date(string="Start", default="_default_start")
    finish = fields.Date(string="Finish", default="_default_finish")

    @api.model
    def _default_start(self):
        return fields.Date.context_today(self)

    @api.model
    def _default_finish(self):
        finish = datetime.now() + timedelta(hours=1)
        return fields.Date.context_today(self, timestamp=finish)

答案 2 :(得分:1)

对于新的api in odoo,字段中有default选项,您可以创建函数来设置默认选项2

start = fields.Datetime('Date', default=fields.Datetime.now,)
finish = fields.Datetime('Date', default='_get_finish_date',)

from datetime import datetime , timedelta
@api.one
def _get_finish_date(self):
    return  datetime.now() + timedelta(hours=1)