Python 如何从OpenERP中删除日期异常?

Python 如何从OpenERP中删除日期异常?,python,openerp,Python,Openerp,我正在OpenERP网站上挖掘,以找到如何从中删除date的异常。例如,我想插入一个日期,如12/12/1523。使用当前功能,如果输入的日期小于1900,则会显示一条错误消息。我已经用_calendar.py、format.py、validates.py检查过了。但我没有成功。如果这里有人能帮我度过难关,我将非常感激。我在1523年输入日期时收到的错误消息如下: 无效的日期时间值!年份必须大于1899年 如果在客户端代码中搜索该错误消息,您将在以下位置找到: 如果您查看,您将看到以下内容: s

我正在OpenERP网站上挖掘,以找到如何从中删除date的异常。例如,我想插入一个日期,如
12/12/1523
。使用当前功能,如果输入的日期小于
1900
,则会显示一条错误消息。我已经用_calendar.py、format.py、validates.py检查过了。但我没有成功。如果这里有人能帮我度过难关,我将非常感激。

我在1523年输入日期时收到的错误消息如下:

无效的日期时间值!年份必须大于1899年

如果在客户端代码中搜索该错误消息,您将在以下位置找到:

如果您查看,您将看到以下内容:

strftime()工作的确切年份范围也因平台而异。无论平台是什么,1900年之前的年份都不能使用

问谷歌先生关于“python strftime 1900”的问题时,他发现了一个补丁并进行了大量讨论。听起来你有几个选择:

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

  • 我在openerp web中发现了两个问题:

    1-日期控件日历受到限制,无法转到下面

    01/01/1900
    
    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)
    

    您是否尝试过在源代码和Google中搜索错误消息的文本?在您的问题中添加消息文本可能会有所帮助。是的,我这样做了,但没有帮助
    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)