Ana*_*med 0 python openerp-8 odoo odoo-8
我开始使用 Odoo v8.0 的新 API,但在计算字段中找不到有关存储触发器的有用信息(对于 v7.0 和 v6.1):Store Parameter in Odoo v6
在 Odoo v8.0 中,我尝试使用与 v7.0 相同的语法,但无法使其工作,因为 JSON 响应无法返回到 Web 客户端:
<function _store_trigger> is not JSON serializable.
然后我读到存储参数已转换为仅布尔字段(没有触发器的字典):Odoo 存储函数:JSON 不可序列化
那么如何设置触发器来将计算(和相关)字段的值存储在数据库中?我想主要为他们制作过滤器和组,所以search function没有用。
在 V8 中,您可以使用任何字段作为计算字段。在 V8 中 store 有一个参数,它是一个布尔值,默认情况下它是false。
如果您显式设置“store=True”,则您在@api.depends('name')中提到的依赖字段将充当触发字段。
您可以指定其他对象字段作为触发字段,该字段必须在会计模块中,如@api.depends('other_object.field_name')
upper = fields.Char(compute='_compute_upper', store=True)
@api.depends('name')
def _compute_upper(self):
for rec in self:
self.upper = self.name.upper() if self.name else False
Run Code Online (Sandbox Code Playgroud)
如果为“false”,则该值不会存储在数据库中,并且每次都会被计算。
upper = fields.Char(compute='_compute_upper')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6713 次 |
| 最近记录: |