奥多。导入关系数据
Odoo. Import data with relations
我需要从 xml 导入员工(hr.employee 对象)并将他们与用户联系起来(res.users 对象)和联系人(res.partner 对象)。与用户工作的关系很好(导入后屏幕如下)。
但是我的联系方式有问题。当系统导入用户时,她会自动创建适用于用户的新联系人。如果我不知道 ID,如何将此联系人与员工联系起来?
我尝试将联系人记录添加到 xml 文件并设置关系。但在这种情况下,系统会创建 2 个联系人。其中一个与用户无关。
这里是我的xml,用于从我的模块导入。
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="user_test" model="res.users">
<field name="name">My Name</field>
<field name="login">my_name</field>
<field name="password">1111</field>
</record>
<!-- I tried create contact like this...
but then will be created 2 contacts
instead 1 + one of them is not related with user -->
<!--<record id="contact_test" model="res.partner">-->
<!--<field name="name">My Name</field>-->
<!--<field name="user_id" ref="user_test"/>-->
<!--</record>-->
<record id="employee_test" model="hr.employee">
<field name="name">My Name</field>
<field name="work_email">my_name@gmail.com</field>
<field name="user_id" ref="user_test"/>
</record>
</data>
</openerp>
所以,我的问题是:如何将联系人(由用户自动创建)设置为员工?
此处解决方案:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<!-- at first create contact -->
<record id="contact_test" model="res.partner">
<field name="name">My Name</field>
</record>
<record id="user_test" model="res.users">
<field name="name">My Name</field>
<field name="login">my_name</field>
<field name="password">1111</field>
<!-- relation between user and contact -->
<field name="partner_id" ref="contact_test"/>
</record>
<record id="employee_test" model="hr.employee">
<field name="name">My Name</field>
<field name="work_email">my_name@gmail.com</field>
<field name="user_id" ref="user_test"/>
<!-- relation employee and contact -->
<field name="address_home_id" ref="contact_test"/>
</record>
</data>
</openerp>
在这种情况下,将创建 1 个联系人、1 个用户和 1 个员工。员工将与联系人发生关系。
试试这个:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="contact_test" model="res.partner">
<field name="name">My Name</field>
</record>
<record id="user_test" model="res.users">
<field name="name">My Name</field>
<field name="login">my_name</field>
<field name="password">1111</field>
<field name="partner_id ref="contact_test"/>
</record>
<record id="employee_test" model="hr.employee">
<field name="name">My Name</field>
<field name="work_email">my_name@gmail.com</field>
<field name="user_id" ref="user_test"/>
<field name="partner_id" ref="contact_test"/>
</record>
</data>
</openerp>
我需要从 xml 导入员工(hr.employee 对象)并将他们与用户联系起来(res.users 对象)和联系人(res.partner 对象)。与用户工作的关系很好(导入后屏幕如下)。
但是我的联系方式有问题。当系统导入用户时,她会自动创建适用于用户的新联系人。如果我不知道 ID,如何将此联系人与员工联系起来?
我尝试将联系人记录添加到 xml 文件并设置关系。但在这种情况下,系统会创建 2 个联系人。其中一个与用户无关。
这里是我的xml,用于从我的模块导入。
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="user_test" model="res.users">
<field name="name">My Name</field>
<field name="login">my_name</field>
<field name="password">1111</field>
</record>
<!-- I tried create contact like this...
but then will be created 2 contacts
instead 1 + one of them is not related with user -->
<!--<record id="contact_test" model="res.partner">-->
<!--<field name="name">My Name</field>-->
<!--<field name="user_id" ref="user_test"/>-->
<!--</record>-->
<record id="employee_test" model="hr.employee">
<field name="name">My Name</field>
<field name="work_email">my_name@gmail.com</field>
<field name="user_id" ref="user_test"/>
</record>
</data>
</openerp>
所以,我的问题是:如何将联系人(由用户自动创建)设置为员工?
此处解决方案:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<!-- at first create contact -->
<record id="contact_test" model="res.partner">
<field name="name">My Name</field>
</record>
<record id="user_test" model="res.users">
<field name="name">My Name</field>
<field name="login">my_name</field>
<field name="password">1111</field>
<!-- relation between user and contact -->
<field name="partner_id" ref="contact_test"/>
</record>
<record id="employee_test" model="hr.employee">
<field name="name">My Name</field>
<field name="work_email">my_name@gmail.com</field>
<field name="user_id" ref="user_test"/>
<!-- relation employee and contact -->
<field name="address_home_id" ref="contact_test"/>
</record>
</data>
</openerp>
在这种情况下,将创建 1 个联系人、1 个用户和 1 个员工。员工将与联系人发生关系。
试试这个:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="contact_test" model="res.partner">
<field name="name">My Name</field>
</record>
<record id="user_test" model="res.users">
<field name="name">My Name</field>
<field name="login">my_name</field>
<field name="password">1111</field>
<field name="partner_id ref="contact_test"/>
</record>
<record id="employee_test" model="hr.employee">
<field name="name">My Name</field>
<field name="work_email">my_name@gmail.com</field>
<field name="user_id" ref="user_test"/>
<field name="partner_id" ref="contact_test"/>
</record>
</data>
</openerp>