我的模块中有两个字段(start_date 和 end_date)。我想验证日期范围,因为 end_date 必须大于 start_date 并显示错误消息,例如“结束日期应该大于开始日期”这是 mu 绳。
from openerp.osv import osv, fields
class op_batch(osv.Model):
_name = 'op.batch'
_columns = {
'name': fields.char(size=25, string='Name', required=True),
'code': fields.char(size=15, string='Code', required=True),
'start_date': fields.date(size=15, string='Start Date', required=True),
'end_date': fields.date(size=15, string='End Date', required=True, onchange="validate_date_range"),
'state': fields.selection(
[('planned', 'Planned'), ('running', 'Running'), ('cancel', 'Cancel'), ('finished', 'finished')],
string='State'),
'course_id': fields.many2one('op.course', string='Course', ondelete='restrict', required=True),
}
def validate_date_range(self, cr, uid, vals, context=None):
en_date = date.start_date.value
st_date = date.end_date.value
if en_date < st_date:
raise Warning(_("End Date Should be greater than Start Date"))
return True
_sql_constraints = [('code', 'UNIQUE (code)', 'The CODE of the Batch must be unique!')]
_defaults = {
'state': 'planned',
}
我该怎么做?请帮我做这个...