Python 2.7 在Odoo 10中重新创建One2Many关系

Python 2.7 在Odoo 10中重新创建One2Many关系,python-2.7,openerp,odoo-10,Python 2.7,Openerp,Odoo 10,我有一个完全定制的新模块,名为Quotes: A类:产品(名称(文本)、说明(文本)、押金(布尔值)、子产品(指向B类的一个或多个)) B类:子产品(名称(文本)、说明(文本)、系数1(浮动)、系数2(浮动)、产品(多个指向A类的一个)) C类:引号(名称(文本)、说明(文本)、日期(日期时间)、行(一个指向D类的引号)) D类:行_产品(名称(文本)、描述(文本)、产品(多个指向A类)、存款(布尔)、定义变更(根据产品填写所有字段)、行_子产品(多个指向E类)、报价(多个指向C类)) E类:生

我有一个完全定制的新模块,名为Quotes:

A类:产品(名称(文本)、说明(文本)、押金(布尔值)、子产品(指向B类的一个或多个))

B类:子产品(名称(文本)、说明(文本)、系数1(浮动)、系数2(浮动)、产品(多个指向A类的一个))

C类:引号(名称(文本)、说明(文本)、日期(日期时间)、行(一个指向D类的引号))

D类:行_产品(名称(文本)、描述(文本)、产品(多个指向A类)、存款(布尔)、定义变更(根据产品填写所有字段)、行_子产品(多个指向E类)、报价(多个指向C类))

E类:生产线子产品(名称(文本)、说明(文本)、系数1(浮动)、系数2(浮动)、产品(多个1指向D类)、子产品(多个2指向B类)、定义变更(根据子产品填写所有字段))

我需要根据A类和B类之间的关系,在选择D类产品时,自动填写E类


任何帮助都将不胜感激

好的,过了一会儿,我找到了一个解决方案:

首先,在类C中,创建一个字段product_id(多个字段指向类a)

在D类和E类中,不需要“def_onchange”,所以将其删除。我们将从C班开始

然后,在C类上,只需创建一个方法,根据特定需要创建字典:

@api.multi
def action_load(self):
    if self.product_id:
        vals_product={'Line_Products':self.product_id.name,'product_id':self.product_id.id,'deposit':True,'descripcion':self.product_id.description,'quote_id':self.id}
        # Create product vals
        new_product = self.env['classD.model'].create(vals_product)
        # Then loop over items in Product
        for Sub-Product in self.product_id.Sub-Products_ids:
            vals_Sub-Product = {'cober_id':Sub-Product.ids[0],'name':Sub-Product.name,'description':Sub-Product.description,'factor1':Sub-Product.factor1,'factor2':Sub-Product.factor2,'subproducts':Sub-Product.id,'product_id':self.product_id.id}
            # Create Sub-Product vals
            new_Sub-Product = self.env['classE.model'].create(vals_Sub-Product)
        # Browse for Product ID
        self.env['classD.model'].browse(new_product.id).onchange_result()
        return
    else:
        return
希望任何人都觉得它有帮助