一对多反向关系

来自Odoo大V社-odoo中文开发手册
971577472讨论 | 贡献2018年5月9日 (三) 13:31的版本

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

一种可以添加到另一端的与Many2one相反的关系。这对于数据库结构没有实质的影响,但是允许我们在one端更容易访问many端关联的记录。一个典型的使用场景就是,文档主体与它的明细行的关系。

在我们的示例中,Stages中的One2many关系能让我们更容易的列出拥有的Tasks。在Stage中添加的代码如下:

class Stage(models.Model):
    _name = 'todo.task.stage'
    # Stage class relationship with Tasks:
    tasks = fields.One2many(
        'todo.task',                  # related model
        'stage_id',                   # field for "this" on related model
        'Tasks in this stage')

One2many按顺序接收3个参数:关联的模块,关联模块的字段名称,标题文本。最开始的两个参数通常是模块名和相反关系对应的外键字段名。 可选的附加关键参数和Many2one相同:context,domain,ondelete(这个是作用在many端的)和auto_join。

上一节:多对多关系 下一节:分层关系