2016-04-19 39 views
0

我仍然在学习Openerp,如果我问了一些非常简单的问题,请耐心等待。 我的问题是我需要验证两个代表start_time和end_time的字段。openerp中的客户端验证

这两个领域都在焦炭

'start_time': fields.char('Start Time'), 
'end_time': fields.char('End Time'), 

我需要做的是,一旦用户输入此START_TIME和END_TIME我需要检查,如果该输入是在24小时和HH:MM模式。

请善待足以帮助我解决这个

回答

2

您应该添加一个on_change功能Python代码,你是否START_TIME和END_TIME是正确的格式。而在你的xml中,你必须告诉应该在字段改变时调用该方法。

XML

<field name="start_time" on_change="check_hour_format(start_time)"/> 
<field name="end_time" on_change="check_hour_format(end_time)"/> 

的Python

的结果应该是这样的

def check_hour_format(self,cr,uid,ids,time_field,context=None): 
    if correct format 
     return {} 
    else: 
     warning = {'title' : _("Warning for this value!"), 
        'message': _("Field not in correct format!"), 
        } 
     return {'warning': warning} 

此代码应该适用于这个问题

import time 
    def check_hour_format(self,cr,uid,ids,time_field,context=None): 
     try: 
      time.strptime(char_input, "%H:%M") 
      return {} 
     except ValueError: 
      warning = {'title' : _("Warning for this value!"), 
         'message': _("Field not in correct format!"), 
         } 
      return {'warning': warning} 

在on_change方法,你可以改变字段值

def on_change(self, cr, uid, ids, context=None): 
    # do something 
    return {'value': { 'field_name': newValue}, 
      'warning': {'title': _("Warning"), 
         'message': _("warning message") 
         } 
      }