2016-07-07 9 views
0

私は少し疑いがあります。私はodoo 8の新人です。私のモデルでは、私はself.env ['#model']を使って特定のモデルにアクセスします。今私は私のモデルと各モデルでは、私はモデルenvの2つの他のモデルへの参照を使用して約10の異なる機能があります。以下はコードですinit関数の環境モデルodoo 8

def test(self): 
    location = self.env['stock.location'] 
    # i get values from database models 

def test1(self): 
    location = self.env['stock.location'] 
    # i get values from database models 

ここで私は2つの異なる機能で同じ環境が必要です。 __init__関数のような方法があります。これはモデルオブジェクトを初期化し、すべての関数で使用できます。

おかげで、あなたは今からself

このよう
def test(self): 
    self.location_obj = self.env['stock.location'] 
    # i get values from database models 

def test1(self): 
    # You can use self.location in this method and other methods 
    self.location_obj.search([('id', '=', 1)]) 

でクラスのプロパティとして設定することができます

答えて

0

確かにあなたは、静的メソッドを除いて(クラスのいずれかの方法でself.locationにアクセスすることができます。あなたはそれを必要としません)

+0

ありがとうダニデー、私はこれを試してみます。すべてのオブジェクトを自動的に初期化する\ __ init__のような関数はありません。 – user280960

+0

ありますが、未知の問題を引き起こすことなくodooの '__init__'メソッドをオーバーライドする方法がありません。これは今私がやる方法です – danidee