如何在OpenERP中循环访问字段值?
我正在学习开发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)