什么是O2M

O2M,是One2many的简写,中文称之为“一对多”,也是Odoo的一种字段类型。

还记得我们前面讲的什么是M2O吗?不记得的话,先回去复习一下。因为没有M2O这层关系,是无法谈及O2M的。

我们可以为每个客户选择一个称谓,实现这个是通过客户上的称谓字段。那么如果用户想要知道“工程师”这个称谓给了哪些客户,该怎么办?其中一种方式就是打开某一种称谓的form视图,上面显示出有哪些客户。

是的,这是可以实现,并且正好就是通过O2M类型字段实现的。我们知道称谓这个字段是定义在客户模型上的,那么在称谓上显示客户列表,就需要在称谓模型上定义这个O2M类型字段。

工程师这个称谓可以给客户A,也可以给客户B,所以一个称谓可以给很多客户,因此One2many、一对多是不难理解的。

我们看销售订单,订单明细就是一个O2M类型的字段,呈现的是列表。因为一个订单可以有很多明细,而一条明细只能属于某一个订单。


从技术的角度来看,打开开发者模式之后,能看到这些字段的对应关系模型。

sale.order模型上有一个O2M类型的order_line字段,这个字段的关系模型是sale.order.line,并且对应的是sale.order.line的order_id字段,所以要记住你要创建O2M字段,先要将关系模型的M2O字段定义好。

sale.order.line模型上有一个M2O类型的order_id字段,这个字段的关系模型是sale.order




留下评论

你应该 登入 张贴评论