2017-08-31 12 views
1

メッセージを返すonchangeと同時に値を更新しようとしています。今のところメッセージは表示されますが、フィールドは変わりません。私が持っているコードは次のとおりです。メッセージを表示し、onchangeメソッドのフィールドに値を割り当てます。

@api.onchange('changed_field') 
def my_onchange_method(self):  
    if self.other_field: 
     self.changed_field=False 
     raise Warning('Some message.') 

私は誰がどのようにodoo 9でこれを達成するために私に言うことができ、私のミスは、メッセージを送信する方法であると思いますか?ありがとう。

答えて

2

私はあなたがフィールドが(私は例外が発生したときに変更がロールバックされていると思います)更新されない理由は、おそらくです組み込み警告例外を上げていると思います。

代わりにこれを試してみてください:

@api.onchange('changed_field') 
def my_onchange_method(self):  
    if self.other_field: 
     self.changed_field = False 
     return { 
      'warning': { 
       'title': 'TITLE OF THE WARNING MESSAGE BOX', 
       'message': 'YOUR WARNING MESSAGE', 
      } 
     } 

は、私は、これは、少なくともodoo 8のために働く確認することができますそれはおそらくodoo 9それは完全に働いた

+0

のために動作します。ありがとう;) – Dayana

0
def onchange_amount_paid(self, cr, uid, ids, amount_paid, context=None): 


res = {'value':{}} 

if amount_paid: 

if fee_type==1 and amount_paid<70: 

warning = { 'title': ("Warning"), 'message': ('registration account minimum payment is 70'), } 

return {'value': res.get('value',{}), 'warning':warning} 

return {'value': res.get('value',{})} 
関連する問題