Odoo IndexError:列表分配索引超出范围(Odoo IndexError: list a

2019-10-22 19:59发布

我只是创建一个模块。 增加值后,得到了问题IndexError:列表分配索引超出范围。 如何解决此问题。 重新编辑代码,请。 这里是我的代码:

class calculator(osv.osv):
    _name = 'calculator.calculator'
    def get_total(self, cr, uid, ids, field_name, arg, context):
            res = []
            perfos = self.browse(cr, uid, ids, context)
            for perfo in perfos:
                res[perfo.id] = perfo.p + perfo.b
            return res
    _columns = {
        'p':fields.selection(((1,'Outstanding'), (2,'Well Above Expectations'), (3,'As Expected'), (4,'Below Expectations'), (5,'VeryPoor'), (0,'N/A')),'title'),
        'b':fields.selection(((1,'Outstanding'), (2,'Well Above Expectations'), (3,'As Expected'), (4,'Below Expectations'), (5,'Very Poor'), (0,'N/A')),'title'),
        'total' : fields.function(get_total, method=True, string='Total Mark'),
    }

Answer 1:

你需要返回字典的字典功能领域。 您定义res的清单,并试图指派作为字典。 res[perfo.id]被视为列表和索引值perfo.id没有在找到res列表。 这是错误的话。 现在代码会

class calculator(osv.osv):
    _name = 'calculator.calculator'

    def get_total(self, cr, uid, ids, field_name, arg, context):
        res = {}
        for perfos in self.browse(cr, uid, ids, context):
            res[perfos.id] = perfos.p + perfos.b
        return res

    _columns = {
        'p':fields.selection(((1,'Outstanding'), (2,'Well Above Expectations'), (3,'As Expected'), (4,'Below Expectations'), (5,'VeryPoor'), (0,'N/A')),'title'),
        'b':fields.selection(((1,'Outstanding'), (2,'Well Above Expectations'), (3,'As Expected'), (4,'Below Expectations'), (5,'Very Poor'), (0,'N/A')),'title'),
        'total' : fields.function(get_total, method=True, string='Total Mark'),
    }

对于上面的代码,你可能会得到这个js错误Error: [_.sprintf] expecting number but found string

我没有得到的分数相加两个选择字段。 关键将在Unicode格式被添加像1 + 1。

这下面的代码会给你职能领域的基本思想。

class calculator(osv.osv):
    _name = 'calculator.calculator'

    def get_total(self, cr, uid, ids, field_name, arg, context):
        res = {}
        for perfos in self.browse(cr, uid, ids, context):
            res[perfos.id] = perfos.p + perfos.b
        return res

    _columns = {
        'p':fields.integer('A'),
        'b':fields.integer('B'),
        'total' : fields.function(get_total, method=True, string='Total Mark'),
        }

您可能需要看看如何设置触发店在Odoo 8计算领域?

功能域不在的OpenERP工作



文章来源: Odoo IndexError: list assignment index out of range
标签: openerp odoo