写在记录上

来自Odoo V
跳转至: 导航搜索

记录集实现了活动记录模式。这意味着我们可以分配它们的值,这些更改将在数据库中持久存储。这个这是一种直观方便操作数据的方式,如下所示︰

>>> admin = self.env['res.users'].browse(1)
>>> print admin.name
Administrator
>>> admin.name = 'Superuser'
>>> print admin.name
Superuser
 

记录集也有三种方法来处理他们的数据︰create(), write(),和unlink()︰

create()方法使用字典将字段映射到值并返回值创建记录。默认值是按照预期自动应用的,也就是这里显示︰

>>> Partner = self.env['res.partner']
>>> new = Partner.create({'name': 'ACME', 'is_company': True})
>>> print new
res.partner(72,)
 

unlink()︰方法删除记录的记录集,如下所示︰

>>> rec = Partner.search([('name', '=', 'ACME')])
>>> rec.unlink()
True
 

Write()用使用字典将字段映射到值。这些都是更新记录集的所有元素,没有返回任何内容,如下所示︰

>>> Partner.write({'comment': 'Hello!'})
 


使用活动记录模式有一些限制;它只更新一个一段时间的字段。另一方面,write()方法可以通过一个简单的数据库指令更新几个字段。这些在性能可能是问题的情况下,应该记住差异。

同样值得一提的是copy()来复制一个已有的记录;作为一个可选的参数和一个带有值的字典记录。例如,要从演示用户创建一个新用户︰


>>> demo = self.env.ref('base.user_demo')
250>>> new = demo.copy({'name': 'Daniel', 'login': 'dr',
'email':''})
 

注意

请记住带有copy=False属性的字段不会被复制。