2016-12-26 33 views
0
data = [{'account_type': u'account_type', 'balance': 3484382.4899999998, 'type': 'report', 'name': u'Assets', 'level': 1}, {'account_type': u'liquidity', 'balance': 87301.78, 'type': 'account', 'name': u'100101 Cash', 'level': 4}, {'account_type': u'liquidity', 'balance': 257350.98, 'type': 'account', 'name': u'100201 HDFC Bank', 'level': 4}] 
@api.multi 
def account_fun(): 
     for item in data: 
      return item['balance'] 

我打電話使用計算函數,並獲得預期的單例錯誤。但我希望將數據中的所有餘額逐個存儲到數據庫中。在odoo中的account.account表中。在odoo帳戶樹視圖中預期的單身錯誤

balance = field.Float(string="Balance",compute="account_fun")#creating new balance field. 

我該怎麼辦that.and必須顯示在列表視圖中餘額字段。謝謝,

回答

0

我不確定你想用這個邏輯來做什麼,我只是在這裏告訴你如何做到這一點。

data = [{'account_type': u'account_type', 'balance': 3484382.4899999998, 'type': 'report', 'name': u'Assets', 'level': 1}, {'account_type': u'liquidity', 'balance': 87301.78, 'type': 'account', 'name': u'100101 Cash', 'level': 4}, {'account_type': u'liquidity', 'balance': 257350.98, 'type': 'account', 'name': u'100201 HDFC Bank', 'level': 4}] 

@api.multi 
def account_fun(self): 
    for rec in self: 
     balance =0 
     for item in data: 
      balance += item['balance'] 
     rec.balance = balance 

balance = field.Float(string="Balance",compute="account_fun") 

你,因爲記錄的自我名單得到這個錯誤將是 那裏。在新的api中,有不同的方式來設置我上面描述的功能字段 。

+0

這裏只獲取列表視圖(每行)的值,但我需要不同的值在行中。像3484382,87301.78 – ShivaGuntuku

+0

這就是爲什麼我首先提到,我不明白你想要設置什麼平衡。如果平衡字段是功能性的,那麼它應該如何計算,您需要指定該點。但是,如上所述,您絕不會在字典列表中獲取數據。 –

0
@api.multi 
def account_fun(self): 
    data = [{'account_type': u'account_type', 'balance': 3484382.4899999998, 'type': 'report', 'name': u'Assets', 'level': 1}, {'account_type': u'liquidity', 'balance': 87301.78, 'type': 'account', 'name': u'100101 Cash', 'level': 4}, {'account_type': u'liquidity', 'balance': 257350.98, 'type': 'account', 'name': u'100201 HDFC Bank', 'level': 4}] 
    for rec in self: 
     for j in range(len(data)): 
      if rec.code in data[j]['name']: 
       rec.balance= data[j]['balance'] 

balance = fields.Float(string="Balance",compute="account_fun") 

感謝@Emipro技術列兵。有些什麼改變你的代碼得到我想要的。