2016-07-07 38 views
0

我有一個小小的懷疑。我是odoo 8的新手,所以在我的模型中,我使用self.env ['#model']來訪問特定的模型。現在我有約10個不同的功能在我的模型和每個模型中我使用模型env引用其他兩個模型。下面是代碼:初始化函數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 

現在,我需要在兩個不同的功能相同的環境。 有沒有像__init__函數那樣的方法,它會初始化模型對象,我們可以在所有函數中使用它。

感謝,

回答

0

當然,你可以只用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)]) 

從現在開始,您可以訪問self.location在任何方法的類(除了靜態方法。但你不需要)

+0

謝謝丹迪,我會試試這個。有沒有函數像\ __ init__,它自動初始化所​​有的對象 – user280960

+0

有,但我還沒有完全找到一種方法來覆蓋odoo的'__init__'方法,而不會引起未解決的問題。所以這是我現在這樣做的方式 – danidee