“单例模式”的版本间的差异

来自Odoo大V社-odoo中文开发手册
跳转至: 导航搜索
(创建页面,内容为“只有一个记录的记录集特殊情况称为单例记录集。单例仍然是一个记录集,可以在任何记录集的地方预计使用。 但是与多元...”)
 
 
第19行: 第19行:
  
 
请注意,空的记录也是单例。
 
请注意,空的记录也是单例。
 +
 +
上一节:[[查询模型]]  下一节:[[写在记录上]]

2017年12月26日 (二) 08:41的最新版本

只有一个记录的记录集特殊情况称为单例记录集。单例仍然是一个记录集,可以在任何记录集的地方预计使用。 但是与多元素记录集不同,单例可以使用它访问它们的字段点表示法,如下所示︰

>>> print self.name
Administrator
 

在下一个例子中,我们可以看到self的单例记录集也有行为作为一个记录集,我们可以迭代它。它只有一个记录,所以只有一个名字打印出来︰

>>> for rec in self:
print rec.name

Administrator
 

尝试访问记录集上的字段值,其中有多个记录错误,所以这可能是一个问题我们不确定我们是否在处理一个单例记录集。对于只使用单例模式的方法,我们可以在开始时检查使用self.ensure_one() 。如果self不是单例它会引发错误。

小提示

请注意,空的记录也是单例。

上一节:查询模型 下一节:写在记录上