2012-07-21 255 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("", "")這將在屏幕上顯示正確的信息。

問候。