odoo帐户树视图中的预期单例错误

时间:2016-12-26 13:43:09

标签: python-2.7 openerp odoo-9

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']

我正在使用compute调用该函数并获取预期的单例错误。但我希望将所有余额从数据存储到数据库中逐个存储。在odoo中的account.account表中。

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

我该怎么做呢?必须在列表视图中显示余额字段。感谢,

2 个答案:

答案 0 :(得分: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中,设置功能域有不同的方法   我已在上面描述过。

答案 1 :(得分: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 Technologies Pvt。有些什么改变了你的代码得到了我想要的东西。