查看“分层关系”的源代码
←
分层关系
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看并复制此页面的源代码:
通过Many2one关系可以在相同的模块中表现父子树关系,每条记录可以引用它的父类。相反的One2many让父类更容易跟踪它的子类。 odoo支持并优化了这种层级数据结构,以便更快的浏览树的兄弟节点,并且可以使用带child_of操作符的规则表达式使查询更容易。 这种特性生效,需要设置_parent_store标签属性并且添加模块的辅助字段:parent_left和parent_right。注意,这种操作会增加额外的存储和执行效率的开销,所以最好在你确认你的读操作远远比写操作更频繁时,再使用,比如树一类的场景。 重新改写todo_model.py文件中的Tags模块为: class Tags(models.Model): _name = 'todo.task.tag' _description = 'To-do Tag' _parent_store = True # _parent_name = 'parent_id' name = fields.Char('Name') parent_id = fields.Many2one('todo.task.tag', 'Parent Tag', ondelete='restrict') parent_left = fields.Integer('Parent Left', index=True) parent_right = fields.Integer('Parent Right', index=True) 这里,我们又一个基本的模块,使用parent_id字段引用父记录,并且附加上_parent_store属性添加层级查询。这个时候,parent_left和parent_right字段就必须添加。 指定父类的字段通常命名为parent_id,但是其他的任何字段名字我们都可以自定义。 同时, 通常添加一个字段,直接访问子记录: child_ids = fields.One2many('todo.task.tag', 'parent_id', 'Child Tags')
返回至
分层关系
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
odoo 中文开发手册
odoo 开发参考
odoo 实施笔记
Odoo 最佳方案
关于 OdooV
Odoo FAQ
工具
链入页面
相关更改
特殊页面
页面信息
友情链接
odoo官网
odoo中文网
odoo实施