-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

私はあなたのコードを見ましたが、それは以下のような少数のインプを必要とするマークまでではありません

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 に答える