查看“计算字段”的源代码
←
计算字段
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看并复制此页面的源代码:
字段可以使用函数计算值,而不是简单地读取数据库存储的值。计算字段就像常规字段一样声明,但是有额外的compute参数,定义在函数中用来计算值. 在大多数情况下,计算的字段涉及编写一些业务逻辑,因此我们将在第7章第七章 ORM应用逻辑 - 支持业务流程中学习.我们仍将在此解释它们,但将使业务逻辑方面尽可能地简单。让我们来做一个例子:阶段有一个fold字段。我们将在to_do 任务中增加一个计算字段,对应相关阶段的“folded?”标记。 我们应该编辑TodoTask 模型 在todo_model.py文件添加以下内容: # class TodoTask(models.Model): stage_fold = fields.Boolean( 'Stage Folded?', compute='_compute_stage_fold') @api.depends('stage_id.fold') def _compute_stage_fold(self): for task in self: task.stage_fold = task.stage_id.fold 前面的代码添加了一个新的stage_fold字段和_compute_stage_fold方法用于计算它。通过函数名作为字符串,但它也允许它作为一个可调用的引用传递(函数标识符没有引号)。在本例中,我们应该确保在该字段之前,在Python文件中已定义函数。 通常,当计算依赖于其他字段时,需要@api.depends装饰器。它让服务器知道什么时候重新计算存储或缓存的值。一个或多个字段名被作为参数接受,点符号可以用来跟踪字段关系。 计算函数将指定一个值到字段或多个字段用来计算。如果它不能,就是错误的。既然self是一个记录对象,我们的计算仅仅是 通过stage_id.fold获取“Folded?” 字段。通过将该值(写入)分配给计算字段stage_fold,来实现这一结果。 我们现在还不会对这个模块的视图进行操作,但是您可以立即对任务表单进行快速编辑,以确认计算出的字段是否如预期的那样:使用开发者模式 ,选择编辑视图,并直接在XML表单中添加字段。不用担心:下一次升级时,它将被干净的模块视图所取代。
返回至
计算字段
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
odoo 中文开发手册
odoo 开发参考
odoo 实施笔记
Odoo 最佳方案
关于 OdooV
Odoo FAQ
工具
链入页面
相关更改
特殊页面
页面信息
友情链接
odoo官网
odoo中文网
odoo实施