在 Datetime odoo 11 中设置时间默认值
Set time default in Datetime odoo 11
我试图在 odoo create 函数中设置默认时间出现以下错误:
TypeError: replace() 没有关键字参数
代码:
@api.model
def create(self, values):
if 'deadline' in values:
values['deadline'].replace(hour=23, minute=59, second=59, microsecond=999999)
line = super(SurveyUserInputInherit, self).create(values)
return line
提前致谢。
Odoo 将日期时间字段存储为字符串。所以如果你想替换 create
函数中的时间,你需要先将它转换为日期时间。您可以使用函数 fields.Datetime.from_string
完成它,然后再次将其转换为字符串,使用 fields.Datetime.to_string
或只是 str
所以在你的情况下,应该这样做:
from odoo import fields
@api.model
def create(self, values):
if 'deadline' in values:
deadline = fields.Datetime.from_string(values['deadline'])
deadline = deadline.replace(hour=23, minute=59, second=59)
values['deadline'] = fields.Datetime.to_string(deadline)
line = super(SurveyUserInputInherit, self).create(values)
return line
顺便说一句,odoo 不存储微秒,因此无需替换。
我试图在 odoo create 函数中设置默认时间出现以下错误:
TypeError: replace() 没有关键字参数
代码:
@api.model
def create(self, values):
if 'deadline' in values:
values['deadline'].replace(hour=23, minute=59, second=59, microsecond=999999)
line = super(SurveyUserInputInherit, self).create(values)
return line
提前致谢。
Odoo 将日期时间字段存储为字符串。所以如果你想替换 create
函数中的时间,你需要先将它转换为日期时间。您可以使用函数 fields.Datetime.from_string
完成它,然后再次将其转换为字符串,使用 fields.Datetime.to_string
或只是 str
所以在你的情况下,应该这样做:
from odoo import fields
@api.model
def create(self, values):
if 'deadline' in values:
deadline = fields.Datetime.from_string(values['deadline'])
deadline = deadline.replace(hour=23, minute=59, second=59)
values['deadline'] = fields.Datetime.to_string(deadline)
line = super(SurveyUserInputInherit, self).create(values)
return line
顺便说一句,odoo 不存储微秒,因此无需替换。