2012-07-21 99 views
-1

我只是修改我的OpenERP,但是......我有点糊涂了比较字符串两场

如何比较场A和场B,但它不应该是相同的字符串

这是我的代码

def check_description(self, cr, uid,ids, context=None): 
    field = self.browse(cr, uid, ids, context=context) 
    check = True 
    for field in fields: 
     check = check and (not field.A==field.B) 
    return check 
_constraints = [(_check_description, 'Please use a different string',['Warning','Description'])] 

但是......我用on_change打电话。有没有响应

请帮助我。感谢的

回答

0

我看到你的代码,但它是不是高达标记它很快就需要几个小鬼像下面

def check_description(self, cr, uid,ids, context=None): 
    for record in self.browse(cr, uid, ids, context=context): 
     if record.A==record.B: 
      return False 
    return True 
_constraints = [(_check_description, 'Please use a different string',['Warning','Description'])] 

你应该打破循环,你发现小姐的比赛,如果你继续检查更多的记录,它将继续等待。第二件事_constraints被触发保存记录,所以在on_change的情况下,确定_constraints块将不会被执行,但是如果你想在on_change上使用相同的功能,你需要写入on_change并且触发和如果找到相同的值raise osv.except_osv("", "")这将在屏幕上显示正确的信息。

问候。