如何在OpenERP中循环访问字段值?

2 投票
1 回答
4901 浏览
提问于 2025-04-17 15:41

我正在学习开发OpenERP模块,其中一个需要做的事情是计算用户输入的平均值。

我的想法是遍历记录,同时保持总和和计数,然后计算平均值,但我似乎不太明白如何访问sim.students表中每条记录的total字段的值。

这是我代码的一部分:

def get_text(self, cr, uid, ids, fields, arg, context):
    result = {}
    i = 0
    for id in ids:
        print self.browse(cr,uid,id,['total'])
        print id
        i = i+1
        print i

    return result

但是打印self.browse(cr,uid,id,['total'])的结果给我的是browse_record(sim.student, 3),而不是总值本身。

我知道这一定很简单,但我就是搞不清楚怎么才能得到那个值。

任何建议都非常感谢。

1 个回答

5

这是我从这里了解到的内容:

browse(cr ,uid, select, context=None, list_process=None, fields_process=None)

这里的意思是:

cr = database cursor
uid = user id
select = id or list of ids
context = context arguments like lang, time zone

它会返回一个对象,里面包含了所有可以通过点号来访问的字段。所以你可以这样做:

records = self.browse(cr, uid, ids)
for rec in records:
     print rec.total
     print rec.otherfield

或者如果你喜欢用列表推导式的话:

records = self.browse(cr, uid, ids)
totals = [rec.total for rec in records]
average = sum(totals)/len(totals)

撰写回答