在视图中更新One2many字段

时间:2017-04-17 10:20:43

标签: python-2.7 openerp odoo-8

我有一个模型A,它与另一个模型B有一个1mny的关系,后者与模型C有一个one2many的关系。 我想使用self.update更新模型A in和onchange方法中的one2many关系,因此相应地更新模型B中的one2many关系。 我已经设法更新了第一个,但第二个没有在这里更新我所做的:

temp.append((0,0,{
    'periode':periode,
    'ca':ca,
    'loc':loc,
    'line_rs':line_rsc,
}))
self.update({
    'periode_line':temp
})

其中line_rsc是应该用于更新第二个的列表 one2many关系

由于

2 个答案:

答案 0 :(得分:0)

我尝试使用新的api,它似乎工作得很好:

 # this will add the new record to existing records
 @api.onchange(..)
 def .....(self):
    self.update(
        {'o2m_1_field': [{
                        'o2m_1_field_name': 'value',
                        'o2m_1_field_o2m_2_name': [{'o2m_2_field': 'value'}]
                    }]
        }
    )

这种逻辑在新api中运行良好。 或者你可以这样做

    # this will add the new record to existing records
    self.o2m_1_field += self.env['o2m.1.model.name'].new({
                        'o2m_1_field_name': 'value',
                        'o2m_1_field_o2m_2_name': [{'o2m_2_field': 'value'}]
                    })

如果这对您不起作用并且给您错误的查询错误,那么您需要 使用最新版本的odoo 8因为很多东西都在改变你甚至可以 现在在o2m_field上进行更改...

答案 1 :(得分:0)

image 1

secod pic(secod one2many relation):

image 2

image 3