openerp 中的客户端验证
Client side validation in openerp
我还在学习Openerp,如果问的很简单,请多多包涵。
我的问题是我需要验证代表 start_time 和 end_time.
的两个字段
两个字段都是字符
'start_time': fields.char('Start Time'),
'end_time': fields.char('End Time'),
我需要做的是,一旦用户输入此 start_time 和 end_time 我需要检查该输入是否在 24 小时和 hh:mm 模式。
请帮我解决这个问题
您应该将 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")
}
}
我还在学习Openerp,如果问的很简单,请多多包涵。 我的问题是我需要验证代表 start_time 和 end_time.
的两个字段两个字段都是字符
'start_time': fields.char('Start Time'),
'end_time': fields.char('End Time'),
我需要做的是,一旦用户输入此 start_time 和 end_time 我需要检查该输入是否在 24 小时和 hh:mm 模式。
请帮我解决这个问题
您应该将 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")
}
}