odoo12学习笔记

1 使用one2many, 另一张表必须要有一个many2one的字段, 反向关联只是为了方便取值

2 many2many会新增一个表

3 传统继承支持多重继承, 用列表表示: inhert = ['mail.thread', 'resource.mixin']

4 进入odoo shell (用ipython解释器)
python odoo-bin shell -c odoo.conf --shell-interface ipython -d odoo

-c 指定配置文件
--shell-interface 指定python解释器
-d 指定数据库

5 委托继承
- 可以读写子模型的字段
- 只能继承字段, 不能继承方法

6 base是基础模块, 不用写在depends里

7 domain
知识点1
- Python里写, 右叶只能是值
- XML里写, 右叶可以是其它字段/值

知识点2
如果一个字段同时设置Python和XML的domain, 那么XML的domain会覆盖Python的domain

知识点3
XML不能用category_id.name !!!!不能使用【点号】

8 one2many 本表是没有many的数据的, 但是可以通过ORM查询到

9 计算字段注意区别
- multi 多条记录
- one 单条记录

10 recordsets支持+号这种语法

11 active = False tree视图不显示, odoo机制,
context = "{'active_test': False}" 可以禁用这种机制

12 新建admin uid为2 # 以前系统自带的admin账户uid为1

13 计算字段的默认值获取方式, 可以重写default_get方法

14 onchange除了返回提示框, 还可以返回domain或raise userError

15 onchange和depends在鼠标失去焦点时, onchange先触发

16 onchange model multi装饰器的方法里, 可以访问self._origin获取原始数据

17 onchange里的self始终是odoo.models.NewId对象, 所以赋值的操作是在前端发生的

18 约束:sql约束在python约束之后

19 权限可以在前端的开发者模式设置

20 编写CSV文件时, pycharm可以右键Edit as Table --> CSV --> ok

21 前(开发者模式)后端同时设置权限时, 大权限会覆盖小权限

22 规则的逻辑
1 groups 应用该规则的组
2 domain_force 过滤出执行规则约束的记录
3 各种规则

23 odoo12开始减少workflow的使用, 推荐使用workflow-ish的方式来处理工作流过程

24 向导
知识点1: 瞬态模型, 不会存在数据库, 临时的, 一段时间后会删掉
知识点2: wizard没有必要指定权限, 默认所有用户可以访问
知识点3: wizard记录中的字段可以通过many2one指向wizard对象或普通model对象, 反之不成立

25 报表, odoo12有变化,
- docs ==> self 从context发过来的变量
- user 当前打印报表的人

- html可以打印多个, 通过直接写id

26 RPC是一种协议, 供我们访问服务器上的内容
XML_RPC调用时, USER和PASS是user表中的数据, 不是数据库的用户名和密码

原文地址:https://www.cnblogs.com/sunch/p/10763987.html