2017-03-21 6 views
2
でエラー

私はstock.pickingモデルの方法で次のコードを持っている「(Xが与えられた)少なくともXの引数を取ります」 、理解がOdoo

TypeError: _calc_line_base_price() takes at least 4 arguments (4 given)

私は古いAPI形式でそのメソッドを呼び出した場合、それは動作しますので、私は次のエラーを取得していますなぜ私は理解できない - -Iはsale.order.line(14)を取得していますオブジェクトb新しいAPI形式で呼び出す方法は?

この回答は非常によく問題を説明したが、私は私が呼び出しています方法はsale.order.lineのクラス内にあるとして、それは私の場合ではないと思う:

Odoo: _get_state() takes at least 4 arguments (4 given) in xml view

誰も私にこれを説明できますか?ちなみに、私はバージョン8で作業しています。

答えて

1

新しいスタイルメソッド内で古いスタイルのメソッドを呼び出すとき、Odooはパラメータを正しくラップしようとします。ここでの問題は、自動的にラップすることができないため、_calc_line_base_priceというメソッドです。

def _calc_line_base_price(self, cr, uid, line, context=None): 

パラメータline(新しいAPIがself.ensure_one()@api.multiであろう、あるインスタンスを呼び出す)メソッドのこのタイプのunsualあります。だからあなたはそれを「静的な」オードークラスメソッドのように呼び出す必要があります:

price = self.env['sale.order.line']._calc_line_base_price(sale_line)