我正在挖掘OpenERP网络,以了解如何从中删除日期异常。例如,我想插入12/12/1523
之类的日期。如果我输入的日期少于1900
,则当前功能会显示错误消息。我用_calendar.py,format.py,validates.py检查了它。但我没有成功。如果这里有人可以帮助我,那将是非常值得的。
答案 0 :(得分:3)
我在openerp-web中发现了两个问题:
1 - 日期控制日历受限制,不能低于
01/01/1900
2 - openerp/i18n/format.py
时出现验证错误
试图保存
第1点,可以轻松修复javascript小部件
openerp/static/calandar/calendar.js
=> find:
param_default("range",[1900,2999])
=> and replace with:
param_default("range",[1,2999])
第2点,替换为
openerp/i18n/format.py
=> find the two occurances of:
return time.strftime(server_format, value)
=> and replace with:
return mx.DateTime.Date(value[0],value[1],value[2],value[3],value[4],value[5]).strftime(server_format)
答案 1 :(得分:0)
我在1523年输入日期时得到的错误信息是:
日期时间值无效!年份必须大于1899年!
如果您在客户端代码中搜索该错误消息,您可以在client/bin/widget/view/form_gtk/calendar.py
中找到该消息:
try:
return date.strftime(DHM_FORMAT)
except ValueError:
common.message(_('Invalid datetime value! Year must be greater than 1899 !'))
如果查看the documentation for date.strftime()
,您会看到以下内容:
strftime()工作的确切年限也因平台而异。无论平台如何,1900年前都无法使用。
询问谷歌先生“python strftime 1900”发现an issue有一个补丁和很多讨论。听起来你有几个选择:
strftime()
。