Odoo 10,在安装模块时使用带有XML的标签导入res合作伙伴

时间:2017-07-22 22:12:36

标签: import openerp

在安装自定义模块时,我需要使用XML将带有标签的客户数据导入 res.partner

客户”数据存储在 res.partner 中,“标记”数据存储在 res.partner.category中,他们通过 res_partner_res_partner_category_rel 建立了关系Many2many。

我在 __ manifest __。py 中调用两个XML文件:

第一个成功填充res.partner.category:

<?xml version="1.0"?>
<odoo>
    <record model="res.partner.category" id="res_partner_category_1">
        <field name="name">Heavy metal</field>
        <field name="active">1</field>
    </record>
</odoo>

第二个插入合作伙伴数据:

<?xml version="1.0"?>
    <odoo>
    <record model="res.partner" id="res_partner_predata_1">
        <field name="name">Iron Maiden</field>
    </record>
</odoo>

我需要的是将 res.partner 注册表与“重金属标记一起插入,并安装自定义模块,例如这样:

它的外观如下:

This is how it would look

我将非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

我在Odoo演示数据中找到答案: 当我创建类别重金属时,我分配了ID res_partner_predata_1 ,那么我只需添加下一行(评论后的那一行)到 res_partner 注册表,如下所示:

<?xml version="1.0"?>
    <odoo>
    <record model="res.partner" id="res_partner_predata_1">
        <field name="name">Iron Maiden</field>
        <--! This line will add the category-->
        <field eval="[(6, 0, [ref('module_name.res_partner_category_1')])]" name="category_id"/>
    </record>
</odoo>

答案 1 :(得分:0)

我在使用 odoo 14 时遇到了同样的问题。就我而言,您的解决方案并没有完全奏效。而不是:

   <field eval="[(6, 0, [ref('module_name.res_partner_category_1')])]" name="category_id"/>

我必须设置:

   <field name="category_id" eval="[(6,0,[ref('res_partner_category_1')])]"/>