跳至內容
選單
此問題已被標幟
1 回覆
5593 瀏覽次數

hie...I am new in openerp. Here is my code. When condition is met properly, it throws exception which is correct. But when condition is not met, it still throws exception. How??????

def _check_resign_date(self,cr,uid,ids,context=None):

    for rec in self.browse(cr,uid,ids):
        if rec.status == 'resign':
            if rec.resign_date > rec.separation_date:
                 raise osv.except_osv(('Alert!'),('Resignation date should not be greater than Separation Date.'))
        elif rec.status == 'transfer':
            if rec.transfer_date > rec.separation_date:
                 raise osv.except_osv(('Alert!'),('Transfer date should not be greater than Separation Date.'))
    return True

_constraints = [ (_check_resign_date,'a',['id']), ]

頭像
捨棄
最佳答案

Hello vikram,

Correct the argument list on your constraint set.

Brief description about arguments

_constraints = [(_check_resign_date,'YOur warning Message !!', ['field_name'])]

1) First argument is your method name 2) The second argument is warning message when your method return false. 3) It must be field name of your model when that field will change than this constraint will trigger. so make sure you are giving the exact field name.

No need to raise exception from there return true or false based on your warning message will trigger from constraint. I suggeest you need to pass both date on your constraint.

like :

_constraints = [(_check_resign_date,'YOur warning Message !!', ['status','resign_date','separation_date'])]

return true or false from your method message will trigger from constraint.

Hope this will help.

Regards, Anil

頭像
捨棄
作者

Thanx....now it works

相關帖文 回覆 瀏覽次數 活動
2
9月 18
7123
9
3月 16
61012
1
3月 15
4878
2
3月 15
4608
0
11月 24
7