我在Python中编写了类似下面的函数。就像用户选择假期开始日期和假日结束日期一样,它会接受正确的时间,否则会显示错误消息,例如“错误:输入的无效日期或时间”#39;如图
所示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'])]
我需要在这里显示哪个开始日期显示错误,该日期应该显示。
如何在约束中获取开始日期信息。
答案 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
现在工作正常。