首页

来自Odoo大V社-odoo中文开发手册
95102545讨论 | 贡献2017年4月30日 (日) 01:16的版本 计算字段

跳转至: 导航搜索

目录

Odoo 大V社概况

Odoo 大V社成员来自五湖四海,他们热爱开源,无私奉献,甘于把自己的业余时间投入到公益的 Odoo 相关资料的整理中去,
为 Odoo 在中国区的推广无私奉献。
odoo 中文书籍交流群:343593855(验证信息:参与odoo中文书籍)

Odoo中文版技术书籍项目

  1. 项目一期目标: Odoo 中文开发手册
  2. 项目性质:公益,保留所有参与人员的署名权;项目成果归全人类
  3. 项目使命:Odoo 中文书籍编写整理,推倒 odoo 语言壁垒,助力 odoo 中国推广
  4. 项目成员:
    1. 统筹:
      • 01.广州-唐振宽(稿件初审) 02.广州-黄伟杰(任务分派) 03.广州-彭 明(进度跟踪)
    2. 审核:
      • 01.苏州-刘春涛(chinamaker)
    3. 成员:
01.苏州时 威 02.苏州庄春梅 03.杭州胡 恒 04.广州陈厚源
05. 06.苏州孙保锁 07.成都曾发军 08.深圳季蜗牛
09.北京乔明洋 10.香港胡sir 11.上海高守庆 12.上海赵祥涛
13.上海罗英川布 14.台北蘇sir 15.苏州-n37r06u3 16.石家庄-leo
17.武汉-周传红

前言

第一章 Odoo 入门

安装Odoo主机服务器

准备Debian 主机

为Odoo创建用户帐户

从源码安装Odoo

创建新的Odoo应用数据库

管理你的Odoo数据库

Odoo 版本

更多服务器选项

Odoo 服务器配置文件

更改侦听端口

数据库的过滤选项

管理服务器日志消息

在工作站上进行开发

使用Linux 文本编辑器

安装和配置 Samba

激活开发者工具

安装第三方模块

查找社区模块

配置 addons 路径

更新应用程序列表

第一章 小结

第二章 构建您的第一个应用程序

基本概念

了解应用程序和模块

修改和扩展模块

创建模块的基本框架

关于许可证

添加 addons 路径

安装新模块

升级模块

服务器开发模式

模型层

创建数据模型

加入自动化测试

视图层

添加菜单选项

创建窗体视图

业务凭证窗体视图

添加动作按钮

用groups来组织forms

完整的Form视图

添加列表和搜索视图

业务逻辑层

添加业务逻辑

添加测试

设置安全访问权限

测试安全访问权限

添加访问控制安全

Row-level访问规则

更好的模块描述

第二章 小结

第三章 继承–扩展现有的应用程序

向待办事宜应用程序添加共享功能

扩展模型

向模型中添加字段

修改现有字段

修改模型的方法

扩展视图

扩展表单视图

扩展树视图和搜索视图

更多的模型继承机制

使用原型继承复制特征

使用委托继承嵌入模型

添加社交网络功能

修改数据

修改菜单和操作记录

修改安全记录规则

第三章 小结

第四章 模块数据

了解外部标识符

寻找外部标识符

导出和导入数据

导出数据

导入数据

CSV数据文件相关记录

模块数据

演示数据

XML数据文件

数据的noupdate属性

在XML里定义记录

设置字段值

使用表达式设置值

设置字段值的关系

常用模型的快捷键

XML数据文件的其它操作

删除记录

触发功能和工作流

第四章小结

第五章 模型 - 结构化应用程序数据

将应用程序特性组织到模块中

todo_ui模块介绍

创建模型

模型属性

模型和Python类

瞬态和抽象模型

检查现有模型

创建字段

基本字段类型

公共字段属性

特殊字段名称

模型之间的关系

多对一关系

多对多关系

一对多反向关系

分层关系

使用动态关系的参考字段

计算字段

在计算字段上搜索和写入

存储计算字段

关联字段

字段可以使用函数计算值,而不是简单地读取数据库存储的值。计算字段就像常规字段一样声明,但是有额外的compute参数,定义在函数中用来计算值. 在大多数情况下,计算的字段涉及编写一些业务逻辑,因此我们将在第7章第七章 ORM应用逻辑 - 支持业务流程中学习.我们仍将在此解释它们,但将使业务逻辑方面尽可能地简单

。让我们来做一个例子:阶段有一个fold字段。我们将在to_do 任务中增加一个计算字段,对应相关阶段的“folded?”标记。


我们应该编辑TodoTask 模型 在todo_model.py文件添加以下内容:

  1. 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表

单中添加字段。不用担心:下一次升级时,它将被干净的模块视图所取代。

模型约束

第五章 小结

第六章 视图 - 设计用户界面

使用XML文件定义用户界面

菜单项

窗口动作

上下文和域

上下文数据

域表达式

窗体视图

处理同一类型的几个视图

业务文档视图

header头部

sheet工作表

标题和副标题

智能按钮区域

对表单中的内容进行分组

标签笔记本

查看语义组件

字段

字段的标签

关系字段

字段小部件

按钮

智能按钮

动态视图

更改事件

动态属性

列表视图

搜索视图

日历视图

图形和枢轴视图

其他视图类型

第六章 小结

第七章 ORM应用逻辑 - 支持业务流程

创建向导

向导模型

向导窗体

向导业务逻辑

记录

提出异常

向导中的助手操作

使用ORM API

方法装饰器

覆盖ORM默认方法

RPC和Web客户端调用的方法

shell命令

服务器环境

修改执行环境

事务和低级SQL

使用记录集

查询模型

单身人士

写在记录上

使用时间和日期

对记录集的操作

操作记录集

使用关系字段

使用关系字段

第七章 小结