Python约束(错误)消息

时间:2015-09-21 05:57:05

标签: python-2.7 constraints openerp-7

我在Python中编写了类似下面的函数。就像用户选择假期开始日期和假日结束日期一样,它会接受正确的时间,否则会显示错误消息,例如“错误:输入的无效日期或时间”#39;如图enter image description here

所示

Python代码:

def _date_start_end_validate(self, cr, uid, ids, context=None):
        sr_ids = self.search(cr, 1 ,[], context=context)
        for self_obj in self.browse(cr, uid, ids, context=context):
            if self_obj.date_start >= self_obj.date_end:
                return False
        return True

_constraints = [(_date_start_end_validate, 'Error: Entered Invalid Date or Time', ['Dates'])]

我需要在这里显示哪个开始日期显示错误,该日期应该显示。

如何在约束中获取开始日期信息。

2 个答案:

答案 0 :(得分:2)

尝试以下代码可能会使用完整。

def _date_start_end_validate(self,cr,uid,ids,context = None):

sr_ids = self.search(cr, 1 ,[], context=context)

for self_obj in self.browse(cr, uid, ids, context=context):

    if self_obj.date_start >= self_obj.date_end:

        return False

return True

def _check_msg_with_start_date(self,cr,uid,id,context):

data = self.browse(cr, uid, ids, context=context)

return "Error: Entered Invalid Date or Time {} ".format(data.date_start)

_constraints = [

(_date_start_end_validate, lambda self, *a, **kw: self._check_msg_with_start_date(*a, **kw), ['date_start','date_end'])

谢谢&此致

Ankit H Gandhi

答案 1 :(得分:1)

我正在定义:

for self_obj in self.browse(cr, uid, ids, context=context):
            xcv = self_obj['description']
            if self_obj.date_start >= self_obj.date_end:
                raise osv.except_osv(_('Error:'),_('Entered Invalid Date/Time: %s')%(xcv))
        return True

现在工作正常。