Search code examples
importodoo

Odoo 10, Importing res partner with tags with an XML when installing a module


I need to import customers data with tags into res.partner with an XML when installing a custom module.

"Customers" data is stored in res.partner and "Tags" data is stored in res.partner.category, they have a relationship Many2many through res_partner_res_partner_category_rel.

I'm calling two XML files in the __manifest__.py:

The first one populates successfully 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>

The second one inserts the partner data:

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

All I need is to insert this res.partner registry with the "Heavy metal" Tag with the installation of a custom module like this:

This is how it would look:

This is how it would look

I will deeply appreciate any help.


Solution

  • I found the answer in the Odoo demo data: When I created the category Heavy metal I assigned the id res_partner_predata_1, then I only have to add the next line (the one after the comment) to the res_partner registry like this:

    <?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>