-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。没有回应

请帮我。谢谢

4

1 回答 1

0

我看到了你的代码,但它不符合标准,它需要很少的 imp 如下所示

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("", "")这将显示屏幕上的正确消息。

问候。

于 2012-07-23T04:09:30.380 回答