2011-11-24 62 views
2

我正在通过OpenERP网络进行挖掘,以了解如何从中删除日期的异常。例如,我想插入一个如12/12/1523的日期。使用当前功能,如果我输入的日期小于1900,它将显示错误消息。我用_calendar.py,format.py,validates.py来检查它。但我没有成功。如果任何人都可以帮助我通过这将是非常可观的。如何从OpenERP中删除日期异常?

+0

你尝试搜索错误消息的源代码,并与谷歌的文本替换?将消息文本添加到您的问题可能会有所帮助。 –

+0

是的,我做到了,但这并没有帮助 – ScoRpion

回答

3

我发现的OpenERP的web两个问题:

1 - 日期控制日历受到限制,不能低于

01/01/1900 

2 - 有来自openerp/i18n/format.py时引发验证错误 试图保存

点1,j avascript小部件可以方便地固定在

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) 
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有补丁和大量的讨论。这听起来像你有几个选择:

  1. 不要使用日期前1900
  2. 编辑日历模块来实现自己的格式化程序,而不是strftime()
  3. 升级到Python 3.2或3.3。 (有关每个版本中已修复的内容的详细信息,请参阅问题报告。)
  4. 将修补程序应用于您自己的Python版本。