## 计算字段和默认值 到目前为止,已直接从数据库中直接检索到的字段。字段也可以 *计算* 。在这种情况下,该字段的值是不从数据库中检索,但计算在传输过程中,通过调用模型的方法。 要创建一个计算字段,创建一个字段,并将其属性“计算”设置为方法的名称。计算方法应简单地设置字段的值来计算在“自我”的每一个记录。 Danger `self` 是一个集合 这个对象 `self` 是一个 *recordset*, 即, 有序集合记录. 它支持标准的Python操作集合,像 `len(self)` 和 `iter(self)`, 加上额外的设置操作 `recs1 + recs2`. 迭代 `self` 给出了一个由一个记录,其中每一个记录是一个集合的大小1 \。您可以使用 “点符号” 来访问单一记录的字段,如 `record.name`. ~~~ python import random from openerp import models, fields class ComputedModel(models.Model): _name = 'test.computed' name = fields.Char(compute='_compute_name') @api.multi def _compute_name(self): for record in self: record.name = str(random.randint(1, 1e6)) ~~~