2017-07-17 8 views
1

type = 'object'のボタンをクリックすると、常にwriteメソッドが呼び出されます。私はまた、いくつかの時間を自分でいくつかの書き込みメソッドを呼び出すと、私はボタンから呼び出された書き込みコンテキストに値渡し:私はそれはボタンから呼び出された場合とアクションを作るよりも、確認することができ、書き込み方法で、この場合にはボタンのクリック後に「書き込み」メソッドが呼び出されたかどうかを確認するにはどうすればよいですか? odoo

self.with_context(called_from_btn=True).write({ 
       'product_route_id': product_id.id, 
       'route_is_confirmed': True 
      }) 

をそれに応じて。

@api.multi 
def write(self, values): 
    res = super(Table, self).write(values) 
    if 'called_from_btn' in self.env.context: 
     ## make actions here 

問題は、常に私が見ることのできない1つの書き込み方法があるということです。そのメソッド呼び出しを書き換えて、コンテキストcalled_from_btnを渡すか、そのようなことをしたいと思います。そんなことを達成することは可能でしょうか?私がこれまで試したボタンをクリックしたとき、空のwriteメソッドを返しているが、私は成功しませんでした何

:私の質問を考慮し、あなたの時間を

return self.with_context(called_from_btn=True).write() 

感謝。

答えて

0

以下の方法で行うことができます。

<button name="download_report" type="object" icon="STOCK_SAVE"/> 

@api.multi 
def download_report(self): 
    self.with_context({'called_from_btn':True}).call_your_method() 


@api.multi 
def download_report(self): 
    self.call_your_method() 
    //call custom method from here 

あなたは、直接ボタン方式でコードを書くボタン方式からコンテキストを渡したりすることができます。

これはあなたを助けるかもしれません。

関連する問題