我正在通过 OpenERP web 挖掘如何从中删除日期异常。例如,我想插入一个日期,如12/12/1523
. 使用当前功能,如果我输入的日期少于那时,它将向我显示一条错误消息1900
。我已经用 _calendar.py、format.py、validates.py 进行了检查。但我没有成功。如果这里有人可以帮助我完成这将是非常可观的。
问问题
643 次
2 回答
3
我在 openerp-web 中发现了两个问题:
1 - 日期控制日历受到限制,不能低于
01/01/1900
openerp/i18n/format.py
2 -尝试保存时出现验证错误
第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)
于 2011-12-08T04:59:36.013 回答
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 !'))
如果您查看的文档date.strftime()
,您将看到以下内容:
strftime() 工作的确切年份范围也因平台而异。无论平台如何,都不能使用 1900 年之前的年份。
向 Google 先生询问“python strftime 1900”会发现补丁存在问题并进行了大量讨论。听起来你有几个选择:
- 不要使用 1900 年之前的日期。
- 编辑日历模块以实现您自己的格式化例程,而不是
strftime()
. - 升级到 Python 3.2 或 3.3。(有关每个版本中修复内容的详细信息,请参阅问题报告。)
- 将补丁应用到您自己的 Python 版本。
于 2011-12-07T18:19:05.880 回答