Python 其中是最初在OpenERP6.1中为one2many表存储的值

Python 其中是最初在OpenERP6.1中为one2many表存储的值,python,openerp,Python,Openerp,我想知道最初在OpenERP6.1中,one2many表的值存储在哪里? i、 e如果我们为one2many表创建一个记录,这个记录实际上是 仅在保存主表的记录后才保存到数据库表 与此相关,即使我们可以为one2many创建许多记录(行) 桌子 这些行存储在哪里 它们是否存储在任何OpenERP内存变量中?如果是的话,那个变量是什么 或我们可以访问这些的功能 请帮我解决这个问题 提前感谢 在openerp中保存新记录时,将生成一个字典,其中所有字段都将数据作为键,其数据作为值。如果该字段是one

我想知道最初在OpenERP6.1中,one2many表的值存储在哪里? i、 e如果我们为one2many表创建一个记录,这个记录实际上是 仅在保存主表的记录后才保存到数据库表 与此相关,即使我们可以为one2many创建许多记录(行) 桌子

这些行存储在哪里

它们是否存储在任何OpenERP内存变量中?如果是的话,那个变量是什么 或我们可以访问这些的功能

请帮我解决这个问题


提前感谢

在openerp中保存新记录时,将生成一个字典,其中所有字段都将数据作为键,其数据作为值。如果该字段是one2many且有许多行,则one2many字段的值将为字典列表。您可以通过覆盖openerp中的
create
write
函数来修改它

One2Many字段是OpenERP中的子-父关系。One2Many只是一个逻辑字段,在数据库中对此并没有任何影响

如果您正在创建销售订单,则销售订单行是销售订单模型中的一行。但是,如果您不在销售订单行中放置多个21,那么销售订单中的多个12将不起作用


多个字段将相关模型的外键放入当前表。

定义o2m字段时,必须在关系表中创建一个m2o字段,我们将在o2m中将其作为第二个参数引用。现在数据库视点o2m字段根本不存在。相反,我们将信息存储在关系表上,例如

OpenERP Code:
modelA                 MOdel B
o2m_field   -------->  m2o_field 

While Databvase picture is 

tableA                    TableB
                        m2o_field (FK)
现在,我们需要在客户端框架中显示o2m字段值,在关系表m2o字段中搜索id=当前记录的字段,这里是结果


谢谢

Yes AnomA..但是one2many字段的创建和写入函数将仅在按照当前架构将数据插入父表时调用。我的要求是在将记录插入父表之前检查one2many表中是否存在重复记录。可能是在onchange函数上。如果子记录数据库中已经有了,那你为什么不能使用很多呢?在xml中,使用widget='many2many'我知道一旦保存了modelA,o2m字段中的行就会存储在tableB中。但是在保存modelA之前,框架会临时将o2m字段中的所有行存储在某个地方。这是在哪里?因为我需要在保存modelA之前验证o2m行。