タイムシートを入力中にトレースバックエラーが発生しました。 R & Dの後、それはそれが自己であるOdooのコードの問題であることがわかりました。私は最新のものとコードを比較し、問題を発見しました。odooの関数フィールドのメソッドをオーバーライドする方法は?
問題:メソッドは、機能フィールドから呼び出される
。私はそれを上書きしましたが、問題は、それをオーバーライドした後、最初にOdooの元のメソッドを呼び出しています。その後、オーバーライドされたメソッドが呼び出されています。だから私は同じトレースバックエラーに直面している。ここで
は、デフォルトのコードです:ここでは
def _get_task(self, cr, uid, id, context=None):
res = []
for line in self.pool.get('account.analytic.line').search_read(cr,uid,[('task_id', '!=', False),('id','in',id)], context=context):
res.append(line['task_id'][0])
return res
Odooで固定バグの後に私のオーバーライドされたコードです:
def _get_task(self, cr, uid, id, context=None):
res = []
for line in self.pool.get('account.analytic.line').search_read(cr, uid,[('task_id', '!=', False), ('id', 'in', id)], ['task_id'], context=context):
res.append(line['task_id'][0])
return res
これら二つの間の唯一の違いは、[ 'TASK_ID' です]はsearch_readメソッドで追加されます。
誰でも助けてくれますか?
フィールド定義をオーバーライドして、関数名を変更します。それはあなたのために働くかもしれません – Cherif